<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" data-whc_version="25.0">
    <head><link rel="shortcut icon" href="../../../oxygen-webhelp/template/images/favicon.png"/><link rel="icon" href="../../../oxygen-webhelp/template/images/favicon.png"/><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="copyright" content="(C) Copyright 2024"/><meta name="generator" content="DITA-OT"/><meta name="description" content="The Oracle Multitable Consumer origin reads Oracle database data from multiple tables and multiple schemas through a JDBC connection. For information about supported versions, see Supported Systems ..."/><meta name="prodname" content="Data Collector"/><meta name="version" content="3"/><meta name="release" content="16"/><meta name="modification" content="0"/>        
      <title>Oracle Multitable Consumer</title><!--  Generated with Oxygen version 25.1, build number 2023042410.  --><meta name="wh-path2root" content="../../../"/><meta name="wh-toc-id" content="concept_bv1_kwt_pbc-d16893e26121"/><meta name="wh-source-relpath" content="datacollector/UserGuide/Origins/OracleMultitableConsumer.dita"/><meta name="wh-out-relpath" content="datacollector/UserGuide/Origins/OracleMultitableConsumer.html"/>

    <link rel="stylesheet" type="text/css" href="../../../oxygen-webhelp/app/commons.css?buildId=2023042410"/>
    <link rel="stylesheet" type="text/css" href="../../../oxygen-webhelp/app/topic.css?buildId=2023042410"/>

    <script src="../../../oxygen-webhelp/app/options/properties.js?buildId=20240802104629"></script>
    <script src="../../../oxygen-webhelp/app/localization/strings.js?buildId=2023042410"></script>
    <script src="../../../oxygen-webhelp/app/search/index/keywords.js?buildId=20240802104629"></script>
    <script defer="defer" src="../../../oxygen-webhelp/app/commons.js?buildId=2023042410"></script>
    <script defer="defer" src="../../../oxygen-webhelp/app/topic.js?buildId=2023042410"></script>
<link rel="stylesheet" type="text/css" href="../../../oxygen-webhelp/template/light.css?buildId=2023042410"/><link rel="stylesheet" type="text/css" href="../../../skin.css"/></head>

    <body class="wh_topic_page frmBody">
        
        
        

        
<nav class="navbar navbar-default wh_header" data-whc_version="25.0">
    <div class="container-fluid">
        <div class="wh_header_flex_container navbar-nav navbar-expand-md navbar-dark">
            <div class="wh_logo_and_publication_title_container">
                <div class="wh_logo_and_publication_title">
                    
                    <!--
                            This component will be generated when the next parameters are specified in the transformation scenario:
                            'webhelp.logo.image' and 'webhelp.logo.image.target.url'.
                            See: http://oxygenxml.com/doc/versions/17.1/ug-editor/#topics/dita_webhelp_output.html.
                    -->
                    
                    <div class=" wh_publication_title "><a href="../../../index.html"><span class="booktitle">  <span class="ph mainbooktitle"><span class="ph">Data Collector</span> User Guide</span>  </span></a></div>
                    
                </div>
                
                <!-- The menu button for mobile devices is copied in the output only when the 'webhelp.show.top.menu' parameter is set to 'yes' -->
                
            </div>

            <div class="wh_top_menu_and_indexterms_link collapse navbar-collapse">
                
                
                <div class=" wh_indexterms_link "><a href="../../../indexTerms.html" title="Index" aria-label="Go to index terms page"><span>Index</span></a></div>
                
            </div>
        </div>
    </div>
</nav>

        <div class=" wh_search_input navbar-form wh_topic_page_search search " role="form">


<form id="searchForm" method="get" role="search" action="../../../search.html"><div><input type="search" placeholder="Search " class="wh_search_textfield" id="textToSearch" name="searchQuery" aria-label="Search query" required="required"/><button type="submit" class="wh_search_button" aria-label="Search"><span class="search_input_text">Search</span></button></div></form>

</div>
        
        <div class="container-fluid">
            <div class="row">

                <nav class="wh_tools d-print-none">
                    
<div data-tooltip-position="bottom" class=" wh_breadcrumb "><ol class="d-print-none"><li><span class="home"><a href="../../../index.html"><span>Home</span></a></span></li><li><div class="topicref" data-id="concept_yjl_nc5_jq"><div class="title"><a href="../../../datacollector/UserGuide/Origins/Origins_title.html">Origins</a></div></div></li><li class="active"><div class="topicref" data-id="concept_bv1_kwt_pbc"><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleMultitableConsumer.html#concept_bv1_kwt_pbc">Oracle Multitable Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li></ol></div>



                    <div class="wh_right_tools "><button class="wh_hide_highlight" aria-label="Toggle search highlights" title="Toggle search highlights"></button><button class="webhelp_expand_collapse_sections" data-next-state="collapsed" aria-label="Collapse sections" title="Collapse sections"></button><div class=" wh_navigation_links "><span id="topic_navigation_links" class="navheader">
  
<span class="navprev"><a class="- topic/link link" href="../../../datacollector/UserGuide/Origins/OracleBulk.html#concept_lnz_kzp_zgb" title="Oracle Bulkload" aria-label="Previous topic: Oracle Bulkload" rel="prev"></a></span>  
<span class="navnext"><a class="- topic/link link" href="../../../datacollector/UserGuide/Origins/OracleC.html#concept_whr_2w2_bwb" title="Oracle CDC" aria-label="Next topic: Oracle CDC" rel="next"></a></span>  </span></div>
<!--External resource link-->
<div class=" wh_print_link print d-none d-md-inline-block "><button onClick="window.print()" title="Print this page" aria-label="Print this page"></button></div>
                        
                        
                        
                        
                    </div>
                </nav>
            </div>

            

<div class="wh_content_area">
                <div class="row">
                    


                        <nav role="navigation" id="wh_publication_toc" class="col-lg-3 col-md-3 col-sm-12 d-md-block d-none d-print-none">
<div id="wh_publication_toc_content">


                            <div class=" wh_publication_toc " data-tooltip-position="right"><span class="expand-button-action-labels"><span id="button-expand-action" role="button" aria-label="Expand"></span><span id="button-collapse-action" role="button" aria-label="Collapse"></span><span id="button-pending-action" role="button" aria-label="Pending"></span></span><ul role="tree" aria-label="Table of Contents"><li role="treeitem" aria-expanded="false"><div data-tocid="concept_htw_ghg_jq-d16893e53" class="topicref" data-id="concept_htw_ghg_jq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_htw_ghg_jq-d16893e53-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Getting_Started/GettingStarted_Title.html#concept_htw_ghg_jq" id="concept_htw_ghg_jq-d16893e53-link">Getting Started</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_l2v_nlp_mpb-d16893e331" class="topicref" data-id="concept_l2v_nlp_mpb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_l2v_nlp_mpb-d16893e331-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/ReleaseNotes/ReleaseNotes.html#concept_l2v_nlp_mpb" id="concept_l2v_nlp_mpb-d16893e331-link">Release Notes</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_l4q_flb_kr-d16893e2582" class="topicref" data-id="concept_l4q_flb_kr" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_l4q_flb_kr-d16893e2582-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Installation/Install_title.html" id="concept_l4q_flb_kr-d16893e2582-link">Installation</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ylh_yyz_ky-d16893e3984" class="topicref" data-id="concept_ylh_yyz_ky" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ylh_yyz_ky-d16893e3984-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Configuration/Config_title.html" id="concept_ylh_yyz_ky-d16893e3984-link">Configuration</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ejk_f1f_5v-d16893e7058" class="topicref" data-id="concept_ejk_f1f_5v" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ejk_f1f_5v-d16893e7058-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Upgrade/Upgrade_title.html" id="concept_ejk_f1f_5v-d16893e7058-link">Upgrade</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_qsw_cjy_bt-d16893e10103" class="topicref" data-id="concept_qsw_cjy_bt" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_qsw_cjy_bt-d16893e10103-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Pipeline_Design/PipelineDesign_title.html" id="concept_qsw_cjy_bt-d16893e10103-link">Pipeline Concepts and Design</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_qn1_wn4_kq-d16893e11199" class="topicref" data-id="concept_qn1_wn4_kq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_qn1_wn4_kq-d16893e11199-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Pipeline_Configuration/PipelineConfiguration_title.html" id="concept_qn1_wn4_kq-d16893e11199-link">Pipeline Configuration</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_hdr_gyw_41b-d16893e13057" class="topicref" data-id="concept_hdr_gyw_41b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_hdr_gyw_41b-d16893e13057-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Data_Formats/DataFormats-Title.html" id="concept_hdr_gyw_41b-d16893e13057-link">Data Formats</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="true"><div data-tocid="concept_yjl_nc5_jq-d16893e14164" class="topicref" data-id="concept_yjl_nc5_jq" data-state="expanded"><span role="button" tabindex="0" aria-labelledby="button-collapse-action concept_yjl_nc5_jq-d16893e14164-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Origins_title.html" id="concept_yjl_nc5_jq-d16893e14164-link">Origins</a></div></div><ul role="group" class="navbar-nav nav-list"><li role="treeitem" aria-expanded="false"><div data-tocid="concept_hpr_twm_jq-d16893e14186" class="topicref" data-id="concept_hpr_twm_jq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_hpr_twm_jq-d16893e14186-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Origins_overview.html#concept_hpr_twm_jq" id="concept_hpr_twm_jq-d16893e14186-link">Origins</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_kvs_3hh_ht-d16893e14389" class="topicref" data-id="concept_kvs_3hh_ht" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_kvs_3hh_ht-d16893e14389-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/AmazonS3.html#concept_kvs_3hh_ht" id="concept_kvs_3hh_ht-d16893e14389-link">Amazon S3</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_xsh_knm_5bb-d16893e14683" class="topicref" data-id="concept_xsh_knm_5bb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_xsh_knm_5bb-d16893e14683-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/AmazonSQS.html#concept_xsh_knm_5bb" id="concept_xsh_knm_5bb-d16893e14683-link">Amazon SQS Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_mmf_dft_zsb-d16893e14861" class="topicref" data-id="concept_mmf_dft_zsb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_mmf_dft_zsb-d16893e14861-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/AuroraPostgreSQL.html#concept_mmf_dft_zsb" id="concept_mmf_dft_zsb-d16893e14861-link">Aurora PostgreSQL CDC Client</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ost_qqh_2xb-d16893e15160" class="topicref" data-id="concept_ost_qqh_2xb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ost_qqh_2xb-d16893e15160-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/AzureBlobStorage.html#concept_ost_qqh_2xb" id="concept_ost_qqh_2xb-d16893e15160-link">Azure Blob Storage</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_osx_qgz_xhb-d16893e15430" class="topicref" data-id="concept_osx_qgz_xhb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_osx_qgz_xhb-d16893e15430-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/ADLS-G1.html#concept_osx_qgz_xhb" id="concept_osx_qgz_xhb-d16893e15430-link">Azure Data Lake Storage Gen1 (deprecated)</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_jmn_csn_zwb-d16893e15995" class="topicref" data-id="concept_jmn_csn_zwb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_jmn_csn_zwb-d16893e15995-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/ADLS-G2v2.html#concept_jmn_csn_zwb" id="concept_jmn_csn_zwb-d16893e15995-link">Azure Data Lake Storage Gen2</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_osx_qgz_xhb-d16893e16287" class="topicref" data-id="concept_osx_qgz_xhb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_osx_qgz_xhb-d16893e16287-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/ADLS-G2.html#concept_osx_qgz_xhb" id="concept_osx_qgz_xhb-d16893e16287-link">Azure Data Lake Storage Gen2 (Legacy)</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_c1z_15q_1bb-d16893e16836" class="topicref" data-id="concept_c1z_15q_1bb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_c1z_15q_1bb-d16893e16836-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/AzureEventHub.html#concept_c1z_15q_1bb" id="concept_c1z_15q_1bb-d16893e16836-link">Azure IoT/Event Hub Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_wfy_ghn_sz-d16893e16970" class="topicref" data-id="concept_wfy_ghn_sz" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_wfy_ghn_sz-d16893e16970-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/CoAPServer.html#concept_wfy_ghn_sz" id="concept_wfy_ghn_sz-d16893e16970-link">CoAP Server</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_nsz_mnr_2jb-d16893e17114" class="topicref" data-id="concept_nsz_mnr_2jb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_nsz_mnr_2jb-d16893e17114-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/CronScheduler.html#concept_nsz_mnr_2jb" id="concept_nsz_mnr_2jb-d16893e17114-link">Cron Scheduler</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_wqr_cjc_fzb-d16893e17204" class="topicref" data-id="concept_wqr_cjc_fzb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_wqr_cjc_fzb-d16893e17204-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Couchbase.html#concept_wqr_cjc_fzb" id="concept_wqr_cjc_fzb-d16893e17204-link">Couchbase</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_qcq_54n_jq-d16893e17360" class="topicref" data-id="concept_qcq_54n_jq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_qcq_54n_jq-d16893e17360-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Directory.html#concept_qcq_54n_jq" id="concept_qcq_54n_jq-d16893e17360-link">Directory</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_f1q_vpm_2z-d16893e17732" class="topicref" data-id="concept_f1q_vpm_2z" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_f1q_vpm_2z-d16893e17732-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Elasticsearch.html#concept_f1q_vpm_2z" id="concept_f1q_vpm_2z-d16893e17732-link">Elasticsearch </a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_n1y_qyp_5q-d16893e17922" class="topicref" data-id="concept_n1y_qyp_5q" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_n1y_qyp_5q-d16893e17922-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/FileTail.html#concept_n1y_qyp_5q" id="concept_n1y_qyp_5q-d16893e17922-link">File Tail</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_cg3_y3v_q1b-d16893e18251" class="topicref" data-id="concept_cg3_y3v_q1b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_cg3_y3v_q1b-d16893e18251-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/BigQuery.html#concept_cg3_y3v_q1b" id="concept_cg3_y3v_q1b-d16893e18251-link">Google BigQuery</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_iyd_wql_nbb-d16893e18415" class="topicref" data-id="concept_iyd_wql_nbb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_iyd_wql_nbb-d16893e18415-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/GCS.html#concept_iyd_wql_nbb" id="concept_iyd_wql_nbb-d16893e18415-link">Google Cloud Storage</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_pjw_qtl_r1b-d16893e18593" class="topicref" data-id="concept_pjw_qtl_r1b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_pjw_qtl_r1b-d16893e18593-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/PubSub.html#concept_pjw_qtl_r1b" id="concept_pjw_qtl_r1b-d16893e18593-link">Google Pub/Sub Subscriber</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_chr_zjj_l3b-d16893e18735" class="topicref" data-id="concept_chr_zjj_l3b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_chr_zjj_l3b-d16893e18735-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/GroovyScripting.html#concept_chr_zjj_l3b" id="concept_chr_zjj_l3b-d16893e18735-link">Groovy Scripting</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_yp1_4zs_yfb-d16893e18980" class="topicref" data-id="concept_yp1_4zs_yfb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_yp1_4zs_yfb-d16893e18980-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/gRPCClient.html#concept_yp1_4zs_yfb" id="concept_yp1_4zs_yfb-d16893e18980-link">gRPC Client</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_lw2_tnm_vs-d16893e19098" class="topicref" data-id="concept_lw2_tnm_vs" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_lw2_tnm_vs-d16893e19098-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/HadoopFS-origin.html#concept_lw2_tnm_vs" id="concept_lw2_tnm_vs-d16893e19098-link">Hadoop FS (deprecated)</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_djz_pdm_hdb-d16893e19313" class="topicref" data-id="concept_djz_pdm_hdb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_djz_pdm_hdb-d16893e19313-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/HDFSStandalone.html#concept_djz_pdm_hdb" id="concept_djz_pdm_hdb-d16893e19313-link">Hadoop FS Standalone</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_wk4_bjz_5r-d16893e19947" class="topicref" data-id="concept_wk4_bjz_5r" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_wk4_bjz_5r-d16893e19947-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/HTTPClient.html#concept_wk4_bjz_5r" id="concept_wk4_bjz_5r-d16893e19947-link">HTTP Client</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_s2p_5hb_4y-d16893e20461" class="topicref" data-id="concept_s2p_5hb_4y" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_s2p_5hb_4y-d16893e20461-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/HTTPServer.html#concept_s2p_5hb_4y" id="concept_s2p_5hb_4y-d16893e20461-link">HTTP Server</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_kn5_bvt_m3b-d16893e20645" class="topicref" data-id="concept_kn5_bvt_m3b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_kn5_bvt_m3b-d16893e20645-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/JavaScriptScripting.html#concept_kn5_bvt_m3b" id="concept_kn5_bvt_m3b-d16893e20645-link">JavaScript Scripting</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_zp3_wnw_4y-d16893e20872" class="topicref" data-id="concept_zp3_wnw_4y" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_zp3_wnw_4y-d16893e20872-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MultiTableJDBCConsumer.html#concept_zp3_wnw_4y" id="concept_zp3_wnw_4y-d16893e20872-link">JDBC Multitable Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_qhf_hjr_bs-d16893e21646" class="topicref" data-id="concept_qhf_hjr_bs" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_qhf_hjr_bs-d16893e21646-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/JDBCConsumer.html#concept_qhf_hjr_bs" id="concept_qhf_hjr_bs-d16893e21646-link">JDBC Query Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ywk_rq3_qbc-d16893e22216" class="topicref" data-id="concept_ywk_rq3_qbc" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ywk_rq3_qbc-d16893e22216-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Jira.html#concept_ywk_rq3_qbc" id="concept_ywk_rq3_qbc-d16893e22216-link">Jira</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_rhh_4nj_dt-d16893e22336" class="topicref" data-id="concept_rhh_4nj_dt" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_rhh_4nj_dt-d16893e22336-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/JMS.html#concept_rhh_4nj_dt" id="concept_rhh_4nj_dt-d16893e22336-link">JMS Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_fxz_35t_m3b-d16893e22495" class="topicref" data-id="concept_fxz_35t_m3b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_fxz_35t_m3b-d16893e22495-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/JythonScripting.html#concept_fxz_35t_m3b" id="concept_fxz_35t_m3b-d16893e22495-link">Jython Scripting</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_msz_wnr_5q-d16893e22744" class="topicref" data-id="concept_msz_wnr_5q" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_msz_wnr_5q-d16893e22744-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/KConsumer.html#concept_msz_wnr_5q" id="concept_msz_wnr_5q-d16893e22744-link">Kafka Consumer (deprecated)</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ccs_fn4_x1b-d16893e22908" class="topicref" data-id="concept_ccs_fn4_x1b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ccs_fn4_x1b-d16893e22908-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/KafkaMultiConsumer.html#concept_ccs_fn4_x1b" id="concept_ccs_fn4_x1b-d16893e22908-link">Kafka Multitopic Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_anh_4y3_yr-d16893e23093" class="topicref" data-id="concept_anh_4y3_yr" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_anh_4y3_yr-d16893e23093-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/KinConsumer.html#concept_anh_4y3_yr" id="concept_anh_4y3_yr-d16893e23093-link">Kinesis Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_qwj_5vm_pbb-d16893e23299" class="topicref" data-id="concept_qwj_5vm_pbb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_qwj_5vm_pbb-d16893e23299-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MapRdbCDC.html#concept_qwj_5vm_pbb" id="concept_qwj_5vm_pbb-d16893e23299-link">MapR DB CDC</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ywh_k15_3y-d16893e23433" class="topicref" data-id="concept_ywh_k15_3y" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ywh_k15_3y-d16893e23433-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MapRDBJSON.html#concept_ywh_k15_3y" id="concept_ywh_k15_3y-d16893e23433-link">MapR DB JSON</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_psz_db4_lx-d16893e23504" class="topicref" data-id="concept_psz_db4_lx" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_psz_db4_lx-d16893e23504-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MapRFS.html#concept_psz_db4_lx" id="concept_psz_db4_lx-d16893e23504-link">MapR FS (deprecated)</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_b43_3qc_mdb-d16893e23678" class="topicref" data-id="concept_b43_3qc_mdb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_b43_3qc_mdb-d16893e23678-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MapRFSStandalone.html#concept_b43_3qc_mdb" id="concept_b43_3qc_mdb-d16893e23678-link">MapR FS Standalone</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_hvd_hww_lbb-d16893e24077" class="topicref" data-id="concept_hvd_hww_lbb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_hvd_hww_lbb-d16893e24077-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MapRStreamsMultiConsumer.html#concept_hvd_hww_lbb" id="concept_hvd_hww_lbb-d16893e24077-link">MapR Multitopic Streams Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_cvy_xsf_2v-d16893e24258" class="topicref" data-id="concept_cvy_xsf_2v" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_cvy_xsf_2v-d16893e24258-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MapRStreamsCons.html#concept_cvy_xsf_2v" id="concept_cvy_xsf_2v-d16893e24258-link">MapR Streams Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_bk4_2rs_ns-d16893e24398" class="topicref" data-id="concept_bk4_2rs_ns" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_bk4_2rs_ns-d16893e24398-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MongoDB.html#concept_bk4_2rs_ns" id="concept_bk4_2rs_ns-d16893e24398-link">MongoDB</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_vcz_zkw_m5b-d16893e24598" class="topicref" data-id="concept_vcz_zkw_m5b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_vcz_zkw_m5b-d16893e24598-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MongoDBAtlas.html#concept_vcz_zkw_m5b" id="concept_vcz_zkw_m5b-d16893e24598-link">MongoDB Atlas</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_u4n_g2b_jzb-d16893e24876" class="topicref" data-id="concept_u4n_g2b_jzb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_u4n_g2b_jzb-d16893e24876-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MongoDBAtlasCDC.html#concept_u4n_g2b_jzb" id="concept_u4n_g2b_jzb-d16893e24876-link">MongoDB Atlas CDC</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_mjn_yqw_4y-d16893e25084" class="topicref" data-id="concept_mjn_yqw_4y" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_mjn_yqw_4y-d16893e25084-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MongoDBOplog.html#concept_mjn_yqw_4y" id="concept_mjn_yqw_4y-d16893e25084-link">MongoDB Oplog</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ukz_3vt_lz-d16893e25263" class="topicref" data-id="concept_ukz_3vt_lz" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ukz_3vt_lz-d16893e25263-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MQTTSubscriber.html#concept_ukz_3vt_lz" id="concept_ukz_3vt_lz-d16893e25263-link">MQTT Subscriber</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_kqg_1yh_xx-d16893e25400" class="topicref" data-id="concept_kqg_1yh_xx" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_kqg_1yh_xx-d16893e25400-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/MySQLBinaryLog.html#concept_kqg_1yh_xx" id="concept_kqg_1yh_xx-d16893e25400-link">MySQL Binary Log</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ynn_vdb_p3b-d16893e25681" class="topicref" data-id="concept_ynn_vdb_p3b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ynn_vdb_p3b-d16893e25681-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/NiFi.html#concept_ynn_vdb_p3b" id="concept_ynn_vdb_p3b-d16893e25681-link">NiFi HTTP Server (deprecated)</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_dsr_xmw_1s-d16893e25727" class="topicref" data-id="concept_dsr_xmw_1s" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_dsr_xmw_1s-d16893e25727-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Omniture.html#concept_dsr_xmw_1s" id="concept_dsr_xmw_1s-d16893e25727-link">Omniture (deprecated)</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_nmf_1ly_f1b-d16893e25773" class="topicref" data-id="concept_nmf_1ly_f1b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_nmf_1ly_f1b-d16893e25773-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OPCUAClient.html#concept_nmf_1ly_f1b" id="concept_nmf_1ly_f1b-d16893e25773-link">OPC UA Client </a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_lnz_kzp_zgb-d16893e25887" class="topicref" data-id="concept_lnz_kzp_zgb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_lnz_kzp_zgb-d16893e25887-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleBulk.html#concept_lnz_kzp_zgb" id="concept_lnz_kzp_zgb-d16893e25887-link">Oracle Bulkload</a></div></div></li><li role="treeitem" aria-expanded="true" class="active"><div data-tocid="concept_bv1_kwt_pbc-d16893e26121" class="topicref" data-id="concept_bv1_kwt_pbc" data-state="expanded"><span role="button" tabindex="0" aria-labelledby="button-collapse-action concept_bv1_kwt_pbc-d16893e26121-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleMultitableConsumer.html#concept_bv1_kwt_pbc" id="concept_bv1_kwt_pbc-d16893e26121-link">Oracle Multitable Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div><ul role="group" class="navbar-nav nav-list"><li role="treeitem"><div data-tocid="concept_sj3_qrl_fcc-d16893e26145" class="topicref" data-id="concept_sj3_qrl_fcc" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleMultitableConsumer.html#concept_sj3_qrl_fcc" id="concept_sj3_qrl_fcc-d16893e26145-link">Prerequisite</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_awg_tgk_vbc-d16893e26169" class="topicref" data-id="concept_awg_tgk_vbc" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_awg_tgk_vbc-d16893e26169-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleMultitableConsumer.html#concept_awg_tgk_vbc" id="concept_awg_tgk_vbc-d16893e26169-link">Oracle Data Types</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ggk_dhk_vbc-d16893e26217" class="topicref" data-id="concept_ggk_dhk_vbc" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ggk_dhk_vbc-d16893e26217-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleMultitableConsumer.html#concept_ggk_dhk_vbc" id="concept_ggk_dhk_vbc-d16893e26217-link">Table Configuration</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_f33_b1k_vbc-d16893e26289" class="topicref" data-id="concept_f33_b1k_vbc" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_f33_b1k_vbc-d16893e26289-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleMultitableConsumer.html#concept_f33_b1k_vbc" id="concept_f33_b1k_vbc-d16893e26289-link">Multithreaded Processing Modes</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem"><div data-tocid="concept_edt_wbk_vbc-d16893e26433" class="topicref" data-id="concept_edt_wbk_vbc" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleMultitableConsumer.html#concept_edt_wbk_vbc" id="concept_edt_wbk_vbc-d16893e26433-link">Non-Incremental Processing</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_qql_mck_vbc-d16893e26457" class="topicref" data-id="concept_qql_mck_vbc" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_qql_mck_vbc-d16893e26457-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleMultitableConsumer.html#concept_qql_mck_vbc" id="concept_qql_mck_vbc-d16893e26457-link">Batch Strategy</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem"><div data-tocid="concept_m1c_5mk_vbc-d16893e26529" class="topicref" data-id="concept_m1c_5mk_vbc" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleMultitableConsumer.html#concept_m1c_5mk_vbc" id="concept_m1c_5mk_vbc-d16893e26529-link">Initial Table Order Strategy</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_uph_fdk_vbc-d16893e26553" class="topicref" data-id="concept_uph_fdk_vbc" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_uph_fdk_vbc-d16893e26553-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleMultitableConsumer.html#concept_uph_fdk_vbc" id="concept_uph_fdk_vbc-d16893e26553-link">Processing Queue</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_odl_vnk_vbc-d16893e26643" class="topicref" data-id="concept_odl_vnk_vbc" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_odl_vnk_vbc-d16893e26643-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleMultitableConsumer.html#concept_odl_vnk_vbc" id="concept_odl_vnk_vbc-d16893e26643-link">Generated Records</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_tnw_1vj_vbc-d16893e26739" class="topicref" data-id="concept_tnw_1vj_vbc" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_tnw_1vj_vbc-d16893e26739-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleMultitableConsumer.html#concept_tnw_1vj_vbc" id="concept_tnw_1vj_vbc-d16893e26739-link">Event Generation</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem"><div data-tocid="task_upl_mwt_pbc-d16893e26788" class="topicref" data-id="task_upl_mwt_pbc" data-state="leaf"><span role="button" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleMultitableConsumer.html#task_upl_mwt_pbc" id="task_upl_mwt_pbc-d16893e26788-link">Configuring an Oracle Multitable Consumer Origin</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li></ul></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_whr_2w2_bwb-d16893e26812" class="topicref" data-id="concept_whr_2w2_bwb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_whr_2w2_bwb-d16893e26812-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleC.html#concept_whr_2w2_bwb" id="concept_whr_2w2_bwb-d16893e26812-link">Oracle CDC</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_rs5_hjj_tw-d16893e27509" class="topicref" data-id="concept_rs5_hjj_tw" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_rs5_hjj_tw-d16893e27509-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/OracleCDC.html#concept_rs5_hjj_tw" id="concept_rs5_hjj_tw-d16893e27509-link">Oracle CDC Client</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_cfs_4m4_n2b-d16893e28270" class="topicref" data-id="concept_cfs_4m4_n2b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_cfs_4m4_n2b-d16893e28270-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/PostgreSQL.html#concept_cfs_4m4_n2b" id="concept_cfs_4m4_n2b-d16893e28270-link">PostgreSQL CDC Client</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="PulsarMultiConsumer-d16893e28573" class="topicref" data-id="PulsarMultiConsumer" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action PulsarMultiConsumer-d16893e28573-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/PulsarConsumerV2.html#PulsarMultiConsumer" id="PulsarMultiConsumer-d16893e28573-link">Pulsar Consumer</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_o2b_1pc_r2b-d16893e28883" class="topicref" data-id="concept_o2b_1pc_r2b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_o2b_1pc_r2b-d16893e28883-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/PulsarConsumer.html#concept_o2b_1pc_r2b" id="concept_o2b_1pc_r2b-d16893e28883-link">Pulsar Consumer (Legacy)</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_dyg_lq1_h5-d16893e29195" class="topicref" data-id="concept_dyg_lq1_h5" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_dyg_lq1_h5-d16893e29195-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/RabbitMQ.html#concept_dyg_lq1_h5" id="concept_dyg_lq1_h5-d16893e29195-link">RabbitMQ Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_plr_t3v_jw-d16893e29310" class="topicref" data-id="concept_plr_t3v_jw" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_plr_t3v_jw-d16893e29310-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Redis.html#concept_plr_t3v_jw" id="concept_plr_t3v_jw-d16893e29310-link">Redis Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_hfg_2sn_p2b-d16893e29403" class="topicref" data-id="concept_hfg_2sn_p2b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_hfg_2sn_p2b-d16893e29403-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/RESTService.html#concept_hfg_2sn_p2b" id="concept_hfg_2sn_p2b-d16893e29403-link">REST Service </a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_odf_vr3_rx-d16893e29750" class="topicref" data-id="concept_odf_vr3_rx" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_odf_vr3_rx-d16893e29750-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Salesforce.html#concept_odf_vr3_rx" id="concept_odf_vr3_rx-d16893e29750-link">Salesforce</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_yk2_tcw_ysb-d16893e30273" class="topicref" data-id="concept_yk2_tcw_ysb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_yk2_tcw_ysb-d16893e30273-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SalesforceBAPI2.html#concept_yk2_tcw_ysb" id="concept_yk2_tcw_ysb-d16893e30273-link">Salesforce Bulk API 2.0</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_pmt_ml3_3mb-d16893e30605" class="topicref" data-id="concept_pmt_ml3_3mb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_pmt_ml3_3mb-d16893e30605-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SAPHana.html#concept_pmt_ml3_3mb" id="concept_pmt_ml3_3mb-d16893e30605-link">SAP HANA Query Consumer</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_agb_5c1_ct-d16893e30963" class="topicref" data-id="concept_agb_5c1_ct" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_agb_5c1_ct-d16893e30963-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SDC_RPCorigin.html#concept_agb_5c1_ct" id="concept_agb_5c1_ct-d16893e30963-link">SDC RPC (deprecated)</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ic5_bzd_5v-d16893e31009" class="topicref" data-id="concept_ic5_bzd_5v" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ic5_bzd_5v-d16893e31009-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SFTP.html#concept_ic5_bzd_5v" id="concept_ic5_bzd_5v-d16893e31009-link">SFTP/FTP/FTPS Client</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_svf_4zr_3xb-d16893e31260" class="topicref" data-id="concept_svf_4zr_3xb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_svf_4zr_3xb-d16893e31260-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SnowflakeBulk.html#concept_svf_4zr_3xb" id="concept_svf_4zr_3xb-d16893e31260-link">Snowflake Bulk</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="SQLServerBDCMultitable-d16893e31552" class="topicref" data-id="SQLServerBDCMultitable" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action SQLServerBDCMultitable-d16893e31552-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SQLServerBDCMultitable.html#SQLServerBDCMultitable" id="SQLServerBDCMultitable-d16893e31552-link">SQL Server 2019 BDC Multitable Consumer (deprecated)</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ut3_ywc_v1b-d16893e32229" class="topicref" data-id="concept_ut3_ywc_v1b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ut3_ywc_v1b-d16893e32229-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SQLServerCDC.html#concept_ut3_ywc_v1b" id="concept_ut3_ywc_v1b-d16893e32229-link">SQL Server CDC Client</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ewq_b2s_r1b-d16893e32613" class="topicref" data-id="concept_ewq_b2s_r1b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ewq_b2s_r1b-d16893e32613-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SQLServerChange.html#concept_ewq_b2s_r1b" id="concept_ewq_b2s_r1b-d16893e32613-link">SQL Server Change Tracking</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ufc_53w_wlb-d16893e32972" class="topicref" data-id="concept_ufc_53w_wlb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ufc_53w_wlb-d16893e32972-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/StartJob.html#concept_ufc_53w_wlb" id="concept_ufc_53w_wlb-d16893e32972-link">Start Jobs</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_h1l_xpr_2jb-d16893e33106" class="topicref" data-id="concept_h1l_xpr_2jb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_h1l_xpr_2jb-d16893e33106-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/StartPipe.html#concept_h1l_xpr_2jb" id="concept_h1l_xpr_2jb-d16893e33106-link">Start Pipelines (deprecated)</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_gzy_gmv_32b-d16893e33200" class="topicref" data-id="concept_gzy_gmv_32b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_gzy_gmv_32b-d16893e33200-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/SystemMetrics.html#concept_gzy_gmv_32b" id="concept_gzy_gmv_32b-d16893e33200-link">System Metrics</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ppm_xb1_4z-d16893e33296" class="topicref" data-id="concept_ppm_xb1_4z" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ppm_xb1_4z-d16893e33296-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/TCPServer.html#concept_ppm_xb1_4z" id="concept_ppm_xb1_4z-d16893e33296-link">TCP Server</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_zp3_wnw_4y-d16893e33474" class="topicref" data-id="concept_zp3_wnw_4y" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_zp3_wnw_4y-d16893e33474-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/Teradata.html#concept_zp3_wnw_4y" id="concept_zp3_wnw_4y-d16893e33474-link">Teradata Consumer (deprecated)</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_wng_g5f_5bb-d16893e34151" class="topicref" data-id="concept_wng_g5f_5bb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_wng_g5f_5bb-d16893e34151-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/UDPMulti.html#concept_wng_g5f_5bb" id="concept_wng_g5f_5bb-d16893e34151-link">UDP Multithreaded Source</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_rst_2y5_1s-d16893e34307" class="topicref" data-id="concept_rst_2y5_1s" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_rst_2y5_1s-d16893e34307-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/UDP.html#concept_rst_2y5_1s" id="concept_rst_2y5_1s-d16893e34307-link">UDP Source</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_jd3_qxg_51c-d16893e34397" class="topicref" data-id="concept_jd3_qxg_51c" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_jd3_qxg_51c-d16893e34397-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/WebClientO.html#concept_jd3_qxg_51c" id="concept_jd3_qxg_51c-d16893e34397-link">Web Client</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_unk_nzk_fbb-d16893e34782" class="topicref" data-id="concept_unk_nzk_fbb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_unk_nzk_fbb-d16893e34782-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/WebSocketClient.html#concept_unk_nzk_fbb" id="concept_unk_nzk_fbb-d16893e34782-link">WebSocket Client</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_u2r_gpc_3z-d16893e34919" class="topicref" data-id="concept_u2r_gpc_3z" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_u2r_gpc_3z-d16893e34919-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/WebSocketServer.html#concept_u2r_gpc_3z" id="concept_u2r_gpc_3z-d16893e34919-link">WebSocket Server</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_agf_5jv_sbb-d16893e35128" class="topicref" data-id="concept_agf_5jv_sbb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_agf_5jv_sbb-d16893e35128-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Origins/WindowsLog.html#concept_agf_5jv_sbb" id="concept_agf_5jv_sbb-d16893e35128-link">Windows Event Log</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li></ul></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_yjl_nc5_jq-d16893e35197" class="topicref" data-id="concept_yjl_nc5_jq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_yjl_nc5_jq-d16893e35197-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Processors/Processors_title.html" id="concept_yjl_nc5_jq-d16893e35197-link">Processors</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_agj_cfj_br-d16893e44037" class="topicref" data-id="concept_agj_cfj_br" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_agj_cfj_br-d16893e44037-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Destinations/Destinations-title.html" id="concept_agj_cfj_br-d16893e44037-link">Destinations</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_umc_1lk_fx-d16893e56072" class="topicref" data-id="concept_umc_1lk_fx" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_umc_1lk_fx-d16893e56072-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Executors/Executors-title.html" id="concept_umc_1lk_fx-d16893e56072-link">Executors</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_xxd_f5r_kx-d16893e59696" class="topicref" data-id="concept_xxd_f5r_kx" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_xxd_f5r_kx-d16893e59696-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Event_Handling/EventFramework-Title.html#concept_xxd_f5r_kx" id="concept_xxd_f5r_kx-d16893e59696-link">Dataflow Triggers</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_zq5_pb4_flb-d16893e60134" class="topicref" data-id="concept_zq5_pb4_flb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_zq5_pb4_flb-d16893e60134-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Solutions/Solutions-title.html" id="concept_zq5_pb4_flb-d16893e60134-link">Solutions</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_ugp_kwf_xw-d16893e61337" class="topicref" data-id="concept_ugp_kwf_xw" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_ugp_kwf_xw-d16893e61337-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/DPM/DPM_title.html" id="concept_ugp_kwf_xw-d16893e61337-link">StreamSets Control Hub</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_fyf_gkq_4bb-d16893e62693" class="topicref" data-id="concept_fyf_gkq_4bb" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_fyf_gkq_4bb-d16893e62693-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Edge_Mode/EdgePipelines_title.html" id="concept_fyf_gkq_4bb-d16893e62693-link"><span class="ph">StreamSets Data Collector Edge</span></a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_wwq_gxc_py-d16893e63980" class="topicref" data-id="concept_wwq_gxc_py" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_wwq_gxc_py-d16893e63980-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Multithreaded_Pipelines/MultithreadedPipelines.html#concept_wwq_gxc_py" id="concept_wwq_gxc_py-d16893e63980-link">Multithreaded Pipelines</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_gzw_tdm_p2b-d16893e64187" class="topicref" data-id="concept_gzw_tdm_p2b" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_gzw_tdm_p2b-d16893e64187-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Microservice/Microservice_Title.html#concept_gzw_tdm_p2b" id="concept_gzw_tdm_p2b-d16893e64187-link">Microservice Pipelines</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="Orchestrators_Title-d16893e64348" class="topicref" data-id="Orchestrators_Title" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action Orchestrators_Title-d16893e64348-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Orchestration_Pipelines/OrchestrationPipelines_Title.html#Orchestrators_Title" id="Orchestrators_Title-d16893e64348-link">Orchestration Pipelines</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_wr1_ktz_bt-d16893e64489" class="topicref" data-id="concept_wr1_ktz_bt" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_wr1_ktz_bt-d16893e64489-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/RPC_Pipelines/SDC_RPCpipelines_title.html#concept_wr1_ktz_bt" id="concept_wr1_ktz_bt-d16893e64489-link">SDC RPC Pipelines</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_fpz_5r4_vs-d16893e64679" class="topicref" data-id="concept_fpz_5r4_vs" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_fpz_5r4_vs-d16893e64679-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Cluster_Mode/ClusterPipelines_title.html" id="concept_fpz_5r4_vs-d16893e64679-link">Cluster Pipelines</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_jjk_23z_sq-d16893e65172" class="topicref" data-id="concept_jjk_23z_sq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_jjk_23z_sq-d16893e65172-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Data_Preview/DataPreview_Title.html#concept_jjk_23z_sq" id="concept_jjk_23z_sq-d16893e65172-link">Data Preview</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_pgk_brx_rr-d16893e65458" class="topicref" data-id="concept_pgk_brx_rr" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_pgk_brx_rr-d16893e65458-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Alerts/RulesAlerts_title.html#concept_pgk_brx_rr" id="concept_pgk_brx_rr-d16893e65458-link">Rules and Alerts</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_asx_fdz_sq-d16893e65960" class="topicref" data-id="concept_asx_fdz_sq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_asx_fdz_sq-d16893e65960-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Pipeline_Monitoring/PipelineMonitoring_title.html#concept_asx_fdz_sq" id="concept_asx_fdz_sq-d16893e65960-link">Pipeline Monitoring</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_o3l_dtr_5q-d16893e66304" class="topicref" data-id="concept_o3l_dtr_5q" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_o3l_dtr_5q-d16893e66304-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Pipeline_Maintenance/PipelineMaintenance_title.html#concept_o3l_dtr_5q" id="concept_o3l_dtr_5q-d16893e66304-link">Pipeline Maintenance</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_yms_ftm_sq-d16893e66768" class="topicref" data-id="concept_yms_ftm_sq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_yms_ftm_sq-d16893e66768-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Administration/Administration_title.html#concept_yms_ftm_sq" id="concept_yms_ftm_sq-d16893e66768-link">Administration</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_nls_w1r_ks-d16893e67508" class="topicref" data-id="concept_nls_w1r_ks" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_nls_w1r_ks-d16893e67508-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Tutorial/Tutorial-title.html" id="concept_nls_w1r_ks-d16893e67508-link">Tutorial</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_sh3_frm_tq-d16893e68001" class="topicref" data-id="concept_sh3_frm_tq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_sh3_frm_tq-d16893e68001-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Troubleshooting/Troubleshooting_title.html#concept_sh3_frm_tq" id="concept_sh3_frm_tq-d16893e68001-link">Troubleshooting</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_xbx_rs1_tq-d16893e68798" class="topicref" data-id="concept_xbx_rs1_tq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_xbx_rs1_tq-d16893e68798-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Glossary/Glossary_title.html#concept_xbx_rs1_tq" id="concept_xbx_rs1_tq-d16893e68798-link">Glossary</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_jn1_nzb_kv-d16893e68843" class="topicref" data-id="concept_jn1_nzb_kv" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_jn1_nzb_kv-d16893e68843-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Apx-DataFormats/DataFormat_Title.html#concept_jn1_nzb_kv" id="concept_jn1_nzb_kv-d16893e68843-link">Data Formats by Stage</a><div class="wh-tooltip"><p class="shortdesc"></p></div></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_pvm_yt3_wq-d16893e68958" class="topicref" data-id="concept_pvm_yt3_wq" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_pvm_yt3_wq-d16893e68958-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Expression_Language/ExpressionLanguage_title.html" id="concept_pvm_yt3_wq-d16893e68958-link">Expression Language</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_vcj_1ws_js-d16893e69669" class="topicref" data-id="concept_vcj_1ws_js" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_vcj_1ws_js-d16893e69669-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Apx-RegEx/RegEx-Title.html#concept_vcj_1ws_js" id="concept_vcj_1ws_js-d16893e69669-link">Regular Expressions</a></div></div></li><li role="treeitem" aria-expanded="false"><div data-tocid="concept_chv_vmj_wr-d16893e69787" class="topicref" data-id="concept_chv_vmj_wr" data-state="not-ready"><span role="button" tabindex="0" aria-labelledby="button-expand-action concept_chv_vmj_wr-d16893e69787-link" class="wh-expand-btn"></span><div class="title"><a href="../../../datacollector/UserGuide/Apx-GrokPatterns/GrokPatterns_title.html#concept_chv_vmj_wr" id="concept_chv_vmj_wr-d16893e69787-link">Grok Patterns</a></div></div></li></ul></div>
                        

</div>
</nav>
                    


                    
                    <div id="wh_topic_body" class="col-lg-7 col-md-9 col-sm-12">
<button id="wh_close_publication_toc_button" class="close-toc-button d-none" aria-label="Toggle publishing table of content" aria-controls="wh_publication_toc" aria-expanded="true"><span class="close-toc-icon-container"><span class="close-toc-icon"></span></span></button><button id="wh_close_topic_toc_button" class="close-toc-button d-none" aria-label="Toggle topic table of content" aria-controls="wh_topic_toc" aria-expanded="true"><span class="close-toc-icon-container"><span class="close-toc-icon"></span></span></button>

                        
<div class=" wh_topic_content body "><main role="main"><article class="" role="article" aria-labelledby="ariaid-title1"><article class="nested0" aria-labelledby="ariaid-title1" id="concept_bv1_kwt_pbc">
    <h1 class="- topic/title title topictitle1" id="ariaid-title1">Oracle Multitable Consumer</h1>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">The Oracle Multitable Consumer origin reads Oracle database data from multiple tables and
            multiple schemas through a JDBC connection. <span class="- topic/ph ph">For information about supported versions, see <a class="- topic/xref xref" href="../Installation/SupportedSystemVersions.html#concept_s5h_bcr_n4b">Supported Systems and Versions</a>.</span></p>
        <p class="- topic/p p">Use the origin to read multiple tables from one or more schemas in the same database. For
            example, you might use the origin to perform database replication.</p>
        <p class="- topic/p p">When you configure the origin, you specify connection information and custom JDBC
            configuration properties to determine how the origin connects to the database. </p>
        <p class="- topic/p p">You define groups of database tables to read. The origin generates SQL queries based on
            the table configurations that you define, and then returns data as a map with column
            names and field values. </p>
        <p class="- topic/p p">When you define the table configurations, you can optionally override the default key
            column and specify the initial offset to use. By default, the origin processes tables
            incrementally, using primary key columns or user-defined offset columns to track its
            progress. You can configure the origin to perform non-incremental processing to enable
            it to also process tables that do not have a key or offset column. </p>
        <p class="- topic/p p">You can configure the origin to perform multithreaded partition processing, multithreaded
            table processing, or use the default - a mix of both. You also specify the processing
            batch strategy. When configuring partitions, you can configure the offset size, number
            of active partitions, and offset conditions. </p>
        <p class="- topic/p p">You can configure advanced properties, such as the initial order to read from tables,
            connection related properties, and transaction isolation. <span class="- topic/ph ph">And you can specify what the origin does when
                        encountering an unsupported data type.</span></p>
        <p class="- topic/p p">When the pipeline stops, the Oracle Multitable Consumer origin notes where it stops
            reading. When the pipeline starts again, the origin continues processing from where it
            stopped by default. You can <a class="- topic/xref xref" href="../Pipeline_Maintenance/ResettingTheOrigin.html#task_hdg_j1s_5q">reset the origin</a> to process all available data,
            using any initial offsets that you defined.</p>
        <p class="- topic/p p">By default, the origin generates JDBC record header and field attributes that provide
            additional information about each record and field.</p>
        <p class="- topic/p p"><span class="- topic/ph ph"> You can configure advanced
                        connection properties. To use a JDBC version older than 4.0, you specify the
                        driver class name and define a health check query.</span></p>
        <p class="- topic/p p">The origin can generate events for an event stream. For
                  more information about dataflow triggers and the event framework, see <a class="- topic/xref xref" href="../Event_Handling/EventFramework-Title.html#concept_cph_5h4_lx">Dataflow Triggers Overview</a>. </p>
        <p class="- topic/p p">Before you use the Oracle Multitable Consumer origin, you must complete a <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_sj3_qrl_fcc">prerequisite task</a>.</p>
    </div>
<article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title2" id="concept_sj3_qrl_fcc">
    <h2 class="- topic/title title topictitle2" id="ariaid-title2">Prerequisite</h2>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">Before using the Oracle Multitable Consumer origin, install the Oracle JDBC driver for
            the database. The origin cannot access the database until you install this driver.</p>
        <div class="- topic/p p"><span class="- topic/ph ph">For information about installing additional drivers, <span class="- topic/ph ph" id="concept_sj3_qrl_fcc__SDCDPM-ExtLibs-linksOnly">see <a class="- topic/xref xref" href="../Configuration/ExternalLibs.html#concept_pdv_qlw_ft">Install External Libraries</a>.</span></span><ol class="- topic/ol ol" id="concept_sj3_qrl_fcc__ol_e2k_ddp_nhb" data-ofbid="concept_sj3_qrl_fcc__ol_e2k_ddp_nhb">
                <li class="- topic/li li">Download the Oracle JDBC driver from the Oracle website.<div class="- topic/p p">
                        <div class="- topic/note note note note_note" id="concept_sj3_qrl_fcc__note_p5l_qrd_pxb" data-ofbid="concept_sj3_qrl_fcc__note_p5l_qrd_pxb"><span class="note__title">Note:</span> Writing XML data to Oracle requires installing
                            the Oracle Data Integrator Driver for XML. For more information, see the
                                <a class="- topic/xref xref" href="https://docs.oracle.com/cd/E29597_01/integrate.1111/e12644/xml_file.htm" target="_blank" rel="external noopener">Oracle documentation</a>.</div>
                    </div></li>
                <li class="- topic/li li">Install the driver as an external library into the JDBC branded Oracle stage
                    library, <code class="+ topic/ph pr-d/codeph ph codeph"><span class="- topic/ph ph">streamsets-datacollector-jdbc-branded-oracle-lib</span></code>, which includes the origin.</li>
            </ol></div>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title3" id="concept_awg_tgk_vbc">
    <h2 class="- topic/title title topictitle2" id="ariaid-title3">Oracle Data Types</h2>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">The Oracle Multitable Consumer origin converts Oracle data types into <span class="- topic/ph ph">Data Collector</span>
            data types. </p>
        <div class="- topic/p p">The stage supports the following Oracle data types:<div class="table-container"><table class="- topic/table table frame-all" id="concept_awg_tgk_vbc__jdbc-Oracle" data-ofbid="concept_awg_tgk_vbc__jdbc-Oracle" data-cols="2"><caption></caption><colgroup><col style="width:50%"/><col style="width:50%"/></colgroup><thead class="- topic/thead thead">
            <tr class="- topic/row">
              <th class="- topic/entry entry colsep-1 rowsep-1" id="concept_awg_tgk_vbc__jdbc-Oracle__entry__1">Oracle Data Type</th>
              <th class="- topic/entry entry colsep-0 rowsep-1" id="concept_awg_tgk_vbc__jdbc-Oracle__entry__2"><span class="- topic/ph ph">Data Collector</span> Data Type</th>
            </tr>
          </thead><tbody class="- topic/tbody tbody">
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__1">Number</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__2">Decimal</td>
            </tr>
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__1">Char</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__2">String</td>
            </tr>
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__1">Varchar, Varchar2</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__2">String</td>
            </tr>
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__1">Nchar, NvarChar2</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__2">String</td>
            </tr>
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__1">Binary_float</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__2">Float</td>
            </tr>
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__1">Binary_double</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__2">Double</td>
            </tr>
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__1">Date</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__2">Datetime</td>
            </tr>
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__1">Timestamp</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__2">Datetime</td>
            </tr>
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__1">Timestamp with time zone</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__2">Zoned_datetime</td>
            </tr>
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__1">Timestamp with local time zone</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__2">Zoned_datetime</td>
            </tr>
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__1">Long</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__2">String</td>
            </tr>
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__1">Blob</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__2">Byte_array</td>
            </tr>
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__1">Clob</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__2">String</td>
            </tr>
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__1">Nclob</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__2">String</td>
            </tr>
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-0" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__1">XMLType</td>
              <td class="- topic/entry entry colsep-0 rowsep-0" headers="concept_awg_tgk_vbc__jdbc-Oracle__entry__2">String</td>
            </tr>
          </tbody></table></div></div>
    </div>
<article class="- topic/topic concept/concept topic concept nested2" aria-labelledby="ariaid-title4" id="concept_pym_kpk_vbc">
    <h3 class="- topic/title title topictitle3" id="ariaid-title4">Unsupported Data Types</h3>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <div class="- topic/p p">The stage handles unsupported data types in one of the
            following ways:<dl class="- topic/dl dl">
                
                    <dt class="- topic/dt dt dlterm" id="concept_pym_kpk_vbc__dl_UnsupportedDataTypes" data-ofbid="concept_pym_kpk_vbc__dl_UnsupportedDataTypes">Stops the pipeline</dt>
                    <dd class="- topic/dd dd">If the stage encounters an unsupported data type, the stage stops the
                        pipeline after completing the processing of the previous records and
                        displays the following
                        error:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>JDBC_37 - Unsupported type 1111 for column.</code></pre></dd>
                    <dd class="- topic/dd dd ddexpand">By default, the stage stops the pipeline.</dd>
                
                
                    <dt class="- topic/dt dt dlterm">Converts to string</dt>
                    <dd class="- topic/dd dd">If the stage encounters an unsupported data type, the stage converts the
                        data to string when possible, and then continues processing. Not all
                        unsupported data types can successfully be converted to string. When using
                        this option, verify that the data is converted to string as expected.</dd>
                    <dd class="- topic/dd dd ddexpand">To configure the stage to attempt to convert unsupported data types to
                        string, on the <span class="+ topic/ph ui-d/uicontrol ph uicontrol">Advanced</span> tab, set the <span class="+ topic/ph ui-d/uicontrol ph uicontrol">On
                            Unknown Type</span> property to <span class="+ topic/ph ui-d/uicontrol ph uicontrol">Convert to
                            String</span>.</dd>
                
            </dl></div>
    </div>
</article></article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title5" id="concept_ggk_dhk_vbc">
    <h2 class="- topic/title title topictitle2" id="ariaid-title5">Table Configuration</h2>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">When you configure an Oracle Multitable Consumer origin, <span class="- topic/ph ph">you define a table
                configuration for each group of tables that you want to read. A table configuration
                defines a group of tables with the same table name pattern, that are from one or
                more schemas with the same name pattern, and that have proper primary keys or the
                same user-defined offset columns.</span></p>
        <p class="- topic/p p">You can define one or more table configurations. </p><p class="- topic/p p">For example, you can define one table configuration to replicate a database that has a
            proper primary key for each table. You simply enter the schema name and use the default
            table name pattern <code class="+ topic/ph pr-d/codeph ph codeph">%</code> which matches all tables in the schema.</p><div class="- topic/p p">Let's look at an example where you need to define more than one table
            configuration. Say that you want to copy a set of tables to an HBase cluster. The SALES
            schema contains ten tables, but you want to copy only the following four tables:<ul class="- topic/ul ul" id="concept_ggk_dhk_vbc__ul-tables" data-ofbid="concept_ggk_dhk_vbc__ul-tables">
                <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">store_a</code></li>
                <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">store_b</code></li>
                <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">store_c</code></li>
                <li class="- topic/li li"><code class="+ topic/ph pr-d/codeph ph codeph">customers</code></li>
            </ul></div><p class="- topic/p p">The three store tables use <code class="+ topic/ph pr-d/codeph ph codeph">orderID</code> as the primary key. You want to
            override the primary key for the customers table, and so need to define
                <code class="+ topic/ph pr-d/codeph ph codeph">customerID</code> as the offset column for that table. You want to read
            all available data in the tables, so do not need to define an initial offset value.</p><div class="- topic/p p">You define one table configuration as follows so that the origin can read the three store
                tables:<ul class="- topic/ul ul" id="concept_ggk_dhk_vbc__ul_vrg_vdl_h2b" data-ofbid="concept_ggk_dhk_vbc__ul_vrg_vdl_h2b">
                <li class="- topic/li li">Schema - <kbd class="+ topic/ph sw-d/userinput ph userinput">SALES</kbd></li>
                <li class="- topic/li li">Table Name Pattern - <kbd class="+ topic/ph sw-d/userinput ph userinput">store%</kbd></li>
            </ul></div><div class="- topic/p p">Then you define the second table configuration as follows so that
            the origin can read the customers table:<ul class="- topic/ul ul" id="concept_ggk_dhk_vbc__ul_ccj_ydl_h2b" data-ofbid="concept_ggk_dhk_vbc__ul_ccj_ydl_h2b">
                <li class="- topic/li li">Schema - <kbd class="+ topic/ph sw-d/userinput ph userinput">SALES</kbd></li>
                <li class="- topic/li li">Table Name Pattern - <kbd class="+ topic/ph sw-d/userinput ph userinput">customers</kbd></li>
                <li class="- topic/li li">Override Offset Columns - <kbd class="+ topic/ph sw-d/userinput ph userinput">enabled</kbd></li>
                <li class="- topic/li li">Offset Columns - <kbd class="+ topic/ph sw-d/userinput ph userinput">customerID</kbd></li>
            </ul></div>
    </div>
<article class="- topic/topic concept/concept topic concept nested2" aria-labelledby="ariaid-title6" id="concept_bq3_mhk_vbc">
    <h3 class="- topic/title title topictitle3" id="ariaid-title6">Schema, Table Name, and Exclusion Patterns</h3>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">You define the group of tables that the Oracle Multitable Consumer origin <span class="- topic/ph ph">reads by defining schema and table name patterns for the table configuration. The
                origin reads all tables with names that match the table pattern in the schemas with
                names that match the schema pattern. </span></p>
        <p class="- topic/p p">The schema and table name patterns use the SQL LIKE syntax. For
            example, the LIKE syntax uses the percentage wildcard (%) to represent any string of
            zero or more characters. The schema name pattern <code class="+ topic/ph pr-d/codeph ph codeph">st%</code> matches schemas
            whose names start with <code class="+ topic/ph pr-d/codeph ph codeph">st</code>. The default table name pattern
                <code class="+ topic/ph pr-d/codeph ph codeph">%</code> matches all tables in the specified schemas.</p><p class="- topic/p p">For more information about valid patterns for the SQL LIKE syntax, see the <a class="- topic/xref xref" href="https://msdn.microsoft.com/en-us/library/ms179859.aspx" target="_blank" rel="external noopener">Microsoft documentation</a>.</p><p class="- topic/p p">You can optionally define a schema or table exclusion pattern to exclude some schemas or
            tables from being read. The schema and table exclusion patterns use a Java-based regular
            expression, or regex. For more information about using regular expressions with <span class="- topic/ph ph">Data Collector</span>, see
                <a class="- topic/xref xref" href="../Apx-RegEx/RegEx-Title.html#concept_vd4_nsc_gs" title="A regular expression, also known as regex, describes a pattern for a string.">Regular Expressions Overview</a>.</p><div class="- topic/p p">For example, let's say that you want to read all tables in the <code class="+ topic/ph pr-d/codeph ph codeph">US_WEST</code>
            and <code class="+ topic/ph pr-d/codeph ph codeph">US_EAST</code> schemas except for tables that start with
                <code class="+ topic/ph pr-d/codeph ph codeph">dept</code>. You enter the following schema, table name pattern, and table
            exclusion pattern: <ul class="- topic/ul ul" id="concept_bq3_mhk_vbc__ul_z3z_h2r_qy" data-ofbid="concept_bq3_mhk_vbc__ul_z3z_h2r_qy">
                <li class="- topic/li li">Schema - <kbd class="+ topic/ph sw-d/userinput ph userinput">US%</kbd></li>
                <li class="- topic/li li">Table Name Pattern - <kbd class="+ topic/ph sw-d/userinput ph userinput">%</kbd></li>
                <li class="- topic/li li">Table Exclusion Pattern - <kbd class="+ topic/ph sw-d/userinput ph userinput">dept.*</kbd></li>
            </ul></div><p class="- topic/p p">Since you do not need to exclude any schemas, you simply leave the schema exclusion
            pattern empty.</p><div class="- topic/p p">Or, let's say that you want to read all tables from all schemas,
            except for the <code class="+ topic/ph pr-d/codeph ph codeph">sys</code> and <code class="+ topic/ph pr-d/codeph ph codeph">system</code> schemas. You enter the
            following schema, table name pattern, and schema exclusion pattern and leave the table
            exclusion pattern blank: <ul class="- topic/ul ul" id="concept_bq3_mhk_vbc__ul_qys_3hx_h2b" data-ofbid="concept_bq3_mhk_vbc__ul_qys_3hx_h2b">
                <li class="- topic/li li">Schema - <kbd class="+ topic/ph sw-d/userinput ph userinput">%</kbd></li>
                <li class="- topic/li li">Table Name Pattern - <kbd class="+ topic/ph sw-d/userinput ph userinput">%</kbd></li>
                <li class="- topic/li li">Schema Exclusion Pattern - <kbd class="+ topic/ph sw-d/userinput ph userinput">sys|system</kbd></li>
            </ul></div>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested2" aria-labelledby="ariaid-title7" id="concept_tbh_b3k_vbc">
    <h3 class="- topic/title title topictitle3" id="ariaid-title7">Offset Column and Value</h3>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">The Oracle Multitable Consumer origin uses an offset column and initial offset value to
            determine where to start reading data within tables and partitions.</p>
        <p class="- topic/p p">By default, the origin uses the primary key of the tables as the offset column and
                  uses no initial offset value. When you use multithreaded table processing and the
                  table has a composite primary key, the origin uses each primary key as an offset
                  column. You cannot use composite keys with multithreaded partition processing. </p>
        <div class="- topic/p p">By default, the origin reads all available data from each table when you start the
                  pipeline. The origin generates SQL queries using the following syntax when you
                  start the
                  pipeline:<pre class="+ topic/pre pr-d/codeblock pre codeblock" id="concept_tbh_b3k_vbc__codeblock_abh_p3k_vbc" data-ofbid="concept_tbh_b3k_vbc__codeblock_abh_p3k_vbc"><code>SELECT * FROM &lt;table&gt; ORDER BY &lt;offset column_1&gt;, &lt;offset column_2&gt;, ...</code></pre></div>
        <p class="- topic/p p">Where <code class="+ topic/ph pr-d/codeph ph codeph">&lt;offset column_<em class="+ topic/ph hi-d/i ph i">n</em>&gt;</code> represents each primary key of the
                  table, such as when the table has a composite primary key. When you restart the
                  pipeline or when the origin switches back to a previously read table, the origin
                  adds a WHERE clause to the SQL query to continue reading from the last saved
                  offset.</p>
        <p class="- topic/p p">To use this default behavior, you do not need to configure any of the offset
                  properties.</p>
        <div class="- topic/p p">You can make the following changes to how the origin handles offset columns and
                  initial offset values:<dl class="- topic/dl dl" id="concept_tbh_b3k_vbc__dl_bbh_p3k_vbc" data-ofbid="concept_tbh_b3k_vbc__dl_bbh_p3k_vbc">
                        
                              <dt class="- topic/dt dt dlterm">Override the primary key as the offset column</dt>
                              <dd class="- topic/dd dd">You can override the primary key and define another offset column
                                    or columns. Or if the table doesnât have a primary key, you can
                                    define the offset column or columns to use. </dd>
                              <dd class="- topic/dd dd ddexpand">
                                    <div class="- topic/note note important note_important" id="concept_tbh_b3k_vbc__note_cbh_p3k_vbc" data-ofbid="concept_tbh_b3k_vbc__note_cbh_p3k_vbc"><span class="note__title">Important:</span> As a best practice,
                                          a user-defined offset column should be an incremental and
                                          unique column that does not contain null values. If the
                                          column is not unique - that is, multiple rows can have the
                                          same value for this column - there is a potential for data
                                          loss upon pipeline restart. </div>
                              </dd>
                              <dd class="- topic/dd dd ddexpand">Having an index on this column is strongly encouraged since the
                                    underlying query uses an ORDER BY and inequality operators on
                                    this column.</dd>
                        
                        
                              <dt class="- topic/dt dt dlterm">Define an initial offset value</dt>
                              <dd class="- topic/dd dd">The initial offset value is a value within the offset column where
                                    you want the JDBC Multitable Consumer origin to start reading.
                                    When you define an initial offset value, you must first enter
                                    the offset column name and then the value. If you are using the
                                    default primary key as the offset column, enter the name of the
                                    primary key.</dd>
                              <dd class="- topic/dd dd ddexpand">If you define an initial offset value for a single offset column,
                                    the origin generates SQL queries using the following
                                    syntax:<pre class="+ topic/pre pr-d/codeblock pre codeblock" id="concept_tbh_b3k_vbc__codeblock_dbh_p3k_vbc" data-ofbid="concept_tbh_b3k_vbc__codeblock_dbh_p3k_vbc"><code>SELECT * FROM &lt;table&gt; ORDER BY &lt;offset column&gt; WHERE &lt;offset column&gt; &gt; ${offset}</code></pre></dd>
                              <dd class="- topic/dd dd ddexpand">If you defined multiple offset columns, you must define an initial
                                    offset value for each column, in the same order that the columns
                                    are defined. The origin uses the initial offset values of all
                                    columns to determine where to start reading data. For example,
                                    you override the primary key with the following offset columns:
                                          <code class="+ topic/ph pr-d/codeph ph codeph">p1</code>, <code class="+ topic/ph pr-d/codeph ph codeph">p2</code>,
                                          <code class="+ topic/ph pr-d/codeph ph codeph">p3</code> and define an initial offset value for
                                    each column. The origin generates SQL queries using the
                                    following syntax:<pre class="+ topic/pre pr-d/codeblock pre codeblock" id="concept_tbh_b3k_vbc__codeblock_ebh_p3k_vbc" data-ofbid="concept_tbh_b3k_vbc__codeblock_ebh_p3k_vbc"><code>SELECT * FROM &lt;table&gt; ORDER BY p1, p2, p3 WHERE (p1 &gt; ${offset1}) OR (p1 = ${offset1} AND p2 &gt; ${offset2}) OR (p1 = ${offset1} AND p2 = ${offset2} AND p3 &gt; ${offset3})</code></pre><div class="- topic/p p">
                                          <div class="- topic/note note note note_note" id="concept_tbh_b3k_vbc__note_fbh_p3k_vbc" data-ofbid="concept_tbh_b3k_vbc__note_fbh_p3k_vbc"><span class="note__title">Note:</span> <span class="- topic/ph ph">Data Collector</span> stores offsets for Datetime columns as Long
                                                values. For offset columns with a Datetime data
                                                type, enter the initial value as a Long value. You
                                                can use the time functions to transform a Datetime
                                                value to a Long value. For example, the following
                                                expression converts a date entered as a String to a
                                                Date object, and then to a Long value:<div class="- topic/p p">
                                                  <pre class="+ topic/pre pr-d/codeblock pre codeblock" id="concept_tbh_b3k_vbc__codeblock_gbh_p3k_vbc" data-ofbid="concept_tbh_b3k_vbc__codeblock_gbh_p3k_vbc"><code>${time:dateTimeToMilliseconds(time:extractDateFromString('2017-05-01 20:15:30.915','yyyy-MM-dd HH:mm:ss.SSS'))} </code></pre>
                                                </div></div>
                                    </div></dd>
                        
                        
                              <dt class="- topic/dt dt dlterm">Define additional offset column conditions</dt>
                              <dd class="- topic/dd dd">You can use the expression language to define additional
                                    conditions that the origin uses to determine where to start
                                    reading data. The origin adds the defined condition to the WHERE
                                    clause of the SQL query.</dd>
                              <dd class="- topic/dd dd ddexpand">You can use the <code class="+ topic/ph pr-d/codeph ph codeph">offset:column</code> function in the
                                    condition to access an offset column by position. For example,
                                    if you have a table with offset columns <code class="+ topic/ph pr-d/codeph ph codeph">p1</code> and
                                          <code class="+ topic/ph pr-d/codeph ph codeph">p2</code>, then
                                          <code class="+ topic/ph pr-d/codeph ph codeph">offset:column(0)</code> returns the value of
                                          <code class="+ topic/ph pr-d/codeph ph codeph">p1</code> while
                                          <code class="+ topic/ph pr-d/codeph ph codeph">offset:column(1)</code> returns the value of
                                          <code class="+ topic/ph pr-d/codeph ph codeph">p2</code>.</dd>
                              <dd class="- topic/dd dd ddexpand">Let's say that you defined a <code class="+ topic/ph pr-d/codeph ph codeph">transaction_time</code>
                                    column as the offset column. While the origin reads the table,
                                    multiple active transactions are being written to the table with
                                    the current timestamp for the <code class="+ topic/ph pr-d/codeph ph codeph">transaction_time</code>
                                    column. When the origin finishes reading the first record with
                                    the current timestamp, the origin continues reading with the
                                    next offset and skips some rows with the current timestamp. You
                                    can enter the following offset column condition to ensure that
                                    the origin reads from all offset columns with a timestamp less
                                    than the current
                                    time:<pre class="+ topic/pre pr-d/codeblock pre codeblock" id="concept_tbh_b3k_vbc__codeblock_hbh_p3k_vbc" data-ofbid="concept_tbh_b3k_vbc__codeblock_hbh_p3k_vbc"><code>${offset:column(0)} &lt; ${time:now()}</code></pre></dd>
                              <dd class="- topic/dd dd ddexpand">If your database requires the datetime in a specific format, you
                                    can use the <code class="+ topic/ph pr-d/codeph ph codeph">time:extractStringFromDate</code> function
                                    to specify the format. For example:
                                    <pre class="- topic/pre pre" id="concept_tbh_b3k_vbc__pre_ibh_p3k_vbc" data-ofbid="concept_tbh_b3k_vbc__pre_ibh_p3k_vbc">${offset:column(0)} &lt; '${time:extractStringFromDate(time:now(), "yyyy-MM-dd HH:mm:ss")}'</pre></dd>
                        
                  </dl></div>
    </div>
</article></article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title8" id="concept_f33_b1k_vbc">
    <h2 class="- topic/title title topictitle2" id="ariaid-title8">Multithreaded Processing Modes</h2>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">The Oracle Multitable Consumer origin performs parallel processing and enables the
            creation of a multithreaded pipeline. The origin can use multiple threads to process
            entire tables or partitions within tables. </p>
        <p class="- topic/p p">By default, the origin performs multithreaded partition processing for the tables that
            fulfill the partition processing requirements, while performing multithreaded table
            processing for all other tables. When using the default behavior, the origin notes the
            tables that allow partition processing in the <span class="- topic/ph ph">Data Collector</span>
            log. When needed, you can configure the origin to require partition processing for all
            tables or to perform only table processing. You can also allow the single-threaded<a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_edt_wbk_vbc"> non-incremental
                processing</a> of tables when needed.</p>
        <div class="- topic/p p">The origin provides the following multithreaded processing modes:<ul class="- topic/ul ul" id="concept_f33_b1k_vbc__ul_trr_gxt_p1b" data-ofbid="concept_f33_b1k_vbc__ul_trr_gxt_p1b">
                <li class="- topic/li li"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_gg5_p1k_vbc">Multithreaded table
                        processing</a> - The origin can use up to one thread per table. Can
                    process tables with multiple offset columns.</li>
                <li class="- topic/li li"><a class="- topic/xref xref" href="MultiTableJDBCConsumer.html#concept_gvy_yws_p1b">Multithreaded partition processing</a> - The origin can use up to one
                    thread per table partition. Use to process larger volumes of data than
                    multithreaded table processing.<p class="- topic/p p">Multithreaded partition processing requires a
                        single primary key or user-defined offset column of a supported data type,
                        and additional details for partition creation. Tables with composite keys or
                        a key or user-defined offset column of an unsupported data type cannot be
                        partitioned.</p></li>
            </ul></div>
        <div class="- topic/p p">When you configure the origin, you specify the tables to process and the multithreaded
            partition processing mode to use for each set of tables: <ul class="- topic/ul ul" id="concept_f33_b1k_vbc__ul_qk1_g2j_t1b" data-ofbid="concept_f33_b1k_vbc__ul_qk1_g2j_t1b">
                <li class="- topic/li li">Off - Use to perform multithreaded table processing. <p class="- topic/p p">Can be used to perform
                        non-incremental loads of tables without key or offset columns, when
                        enabled.</p></li>
                <li class="- topic/li li">On (Best Effort) - Use to perform partition processing where possible and allow
                    multithreaded table processing for tables with multiple key or offset columns.
                        <p class="- topic/p p">Can be used to perform non-incremental loads of tables without key or
                        offset columns, when enabled. </p></li>
                <li class="- topic/li li">On (Required) - Use to perform partition processing for all specified tables.
                        <p class="- topic/p p">Does not allow performing other types of processing for tables that do
                        not meet the partition processing requirements.</p></li>
            </ul></div>
    </div>
<article class="- topic/topic concept/concept topic concept nested2" aria-labelledby="ariaid-title9" id="concept_gg5_p1k_vbc">
    <h3 class="- topic/title title topictitle3" id="ariaid-title9">Multithreaded Table Processing</h3>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <div class="- topic/p p">When performing multithreaded table processing, the Oracle Multitable Consumer origin
            retrieves the list of tables defined in the table configuration when you start the
            pipeline. The origin then uses multiple concurrent threads based on the Number of
            Threads property. Each thread reads data from a single table, and each table can have a
            maximum of one thread read from it at a time.<div class="- topic/note note note note_note" id="concept_gg5_p1k_vbc__note_oxn_t1k_vbc" data-ofbid="concept_gg5_p1k_vbc__note_oxn_t1k_vbc"><span class="note__title">Note:</span> The Maximum
                Pool Size property on the Advanced tab defines the maximum number of connections the
                origin can make to the database. It must be equal to or greater than the value
                defined for the Number of Threads property.</div></div>
        <p class="- topic/p p">As the pipeline runs, <span class="- topic/ph ph">each thread connects to the origin system,
                        creates a batch of data, and passes the batch to an available pipeline
                        runner. <span class="- topic/ph ph">A pipeline runner is a <dfn class="- topic/term term">sourceless
                              pipeline instance</dfn> - an instance of the pipeline that includes
                        all of the processors, executors, and destinations in the pipeline and
                        handles all pipeline processing after the origin.</span></span></p>
        <p class="- topic/p p"><span class="- topic/ph ph"><span class="- topic/ph ph" id="concept_gg5_p1k_vbc__ph-MultiThread-partial">Each pipeline runner
                              processes one batch at a time, just like a pipeline that runs on a
                              single thread.</span> When the flow of data slows, the pipeline runners
                        wait idly until they are needed, generating an empty batch at regular
                        intervals. You can configure the Runner Idle Time pipeline property to
                        specify the interval or to opt out of empty batch generation.</span></p>
        <p class="- topic/p p"><span class="- topic/ph ph"><span class="- topic/ph ph" id="concept_gg5_p1k_vbc__ph-MultiThread-OracleBulkbatch1">Multithreaded pipelines preserve the order of records within each
                              batch, just like a single-threaded pipeline. But since</span> batches
                              <span class="- topic/ph ph" id="concept_gg5_p1k_vbc__ph-MultiThread-OracleBulkbatch2">are processed by different
                              pipeline runners, the order that batches are written to destinations
                              is not ensured.</span></span></p>
        <p class="- topic/p p">The order of batch processing depends on many factors. For more information, see <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_uph_fdk_vbc">Processing Queue</a>.</p>
        <p class="- topic/p p">For more information about multithreaded pipelines, see <a class="- topic/xref xref" href="../Multithreaded_Pipelines/MultithreadedPipelines.html#concept_zpp_2xc_py">Multithreaded Pipeline Overview</a>.</p>
        <section class="- topic/section section" id="concept_gg5_p1k_vbc__section_fvq_bpw_hz" data-ofbid="concept_gg5_p1k_vbc__section_fvq_bpw_hz"><h4 class="- topic/title title sectiontitle">Example</h4>
            
            <p class="- topic/p p">Say you are reading from ten tables. You set the Number of Threads property to 5 and
                the Maximum Pool Size property to 6. When you start the pipeline, the origin
                retrieves the list of tables. The origin then creates five threads to read from the
                first five tables, and by default <span class="- topic/ph ph">Data Collector</span>
                creates a matching number of pipeline runners. Upon receiving data, a thread passes
                a batch to each of the pipeline runners for processing.</p>
            <p class="- topic/p p"><span class="- topic/ph ph" id="concept_gg5_p1k_vbc__multithread-partial2">At any given moment, the five
                        pipeline runners can each process a batch, so this multithreaded pipeline
                        processes up to five batches at a time.</span> When incoming data slows, the
                  pipeline runners sit idle, available for use as soon as the data flow
                  increases.</p>
        </section>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested2" aria-labelledby="ariaid-title10" id="concept_csl_2bk_vbc">
    <h3 class="- topic/title title topictitle3" id="ariaid-title10">Multithreaded Partition Processing</h3>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">By default, the Oracle Multitable Consumer origin performs multithreaded partition
            processing for all tables that meet the partition processing requirements, and performs
            table processing for all other tables. </p>
        <p class="- topic/p p">To perform multithreaded processing of partitions within a table, you enable partition
            processing in the table configuration, then specify the partition size and the maximum
            number of partitions to use. Limiting the number of partitions also limits the number of
            threads that can be dedicated to processing data in the table. </p>
        <p class="- topic/p p">When you configure a set of tables for unlimited partitions, the origin creates up to
            twice as many partitions as the pipeline thread count. For example, if you have 5
            threads, the table can have up to 10 partitions. </p>
        <p class="- topic/p p">Similar to multithreaded table processing, each thread reads data from a single
            partition, and each partition can have a maximum of one thread read from it at a time. </p>
        <p class="- topic/p p">When processing partitions, the processing order depends on many factors. For a full
            description, see <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_uph_fdk_vbc">Processing Queue</a>.</p>
    </div>
<article class="- topic/topic concept/concept topic concept nested3" aria-labelledby="ariaid-title11" id="concept_cyz_bkk_vbc">
    <h4 class="- topic/title title topictitle4" id="ariaid-title11">Partition Processing Requirements</h4>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <div class="- topic/p p">To perform multithreaded partition processing for a table, the table must meet the
                  following requirements: <dl class="- topic/dl dl" id="concept_cyz_bkk_vbc__dl_axp_lkk_vbc" data-ofbid="concept_cyz_bkk_vbc__dl_axp_lkk_vbc">
                        
                              <dt class="- topic/dt dt dlterm">Single key or offset column</dt>
                              <dd class="- topic/dd dd">The table must have a single primary key or user-defined offset
                                    column. Performing multithreaded partition processing on a table
                                    with composite keys generates an error and stops the
                                    pipeline.</dd>
                              <dd class="- topic/dd dd ddexpand">If a table does not have a primary key column, you can use the
                                    Override Offset Columns property to specify a valid offset
                                    column to use. Having an ascending index on the offset column is
                                    strongly encouraged since the underlying query uses an ORDER BY
                                    and inequality operators on this column.</dd>
                        
                        
                              <dt class="- topic/dt dt dlterm">Numeric data type</dt>
                              <dd class="- topic/dd dd">To use partition processing, the primary key or user-defined
                                    offset column must have a numeric data type that allows
                                    arithmetic partitioning. </dd>
                              <dd class="- topic/dd dd ddexpand">The key or offset column must be one of the following data
                                          types:<ul class="- topic/ul ul" id="concept_cyz_bkk_vbc__ul_kdf_sj1_q1b" data-ofbid="concept_cyz_bkk_vbc__ul_kdf_sj1_q1b">
                                          <li class="- topic/li li">Integer-based: Integer, Smallint, Tinyint</li>
                                          <li class="- topic/li li">Long-based: Bigint, Date, Time, Timestamp.<p class="- topic/p p">The
                                                  Oracle data type Timestamp with time zone is also
                                                  supported, as long as each row has the same time
                                                  zone.</p></li>
                                          <li class="- topic/li li">Float-based: Float, Real</li>
                                          <li class="- topic/li li">Double-based: Double</li>
                                          <li class="- topic/li li">Precision-based: Decimal, Numeric</li>
                                    </ul></dd>
                        
                  </dl></div>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested3" aria-labelledby="ariaid-title12" id="concept_jsn_bmk_vbc">
    <h4 class="- topic/title title topictitle4" id="ariaid-title12">Multiple Offset Value Handling</h4>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">When processing partitions, the Oracle Multitable Consumer origin can process multiple
            records with the same offset value. For example, the origin can process multiple records
            with the same timestamp in a <code class="+ topic/ph pr-d/codeph ph codeph">transaction_date</code> offset column.</p>
        <div class="- topic/p p">
            <div class="- topic/note note warning note_warning" id="concept_jsn_bmk_vbc__note_gjc_5lk_vbc" data-ofbid="concept_jsn_bmk_vbc__note_gjc_5lk_vbc"><span class="note__title">Warning:</span> When processing multiple records with
                        the same offset value, records can be dropped if you stop the pipeline when
                        the origin is processing a series of records with the same offset
                        value.</div>
        </div>
        <p class="- topic/p p">When you stop the pipeline as the origin is processing a series of records with the
                  same offset value, the origin notes the offset. Then, when you restart the
                  pipeline, it starts with a record with the next logical offset value, skipping any
                  unprocessed records that use the same last-saved offset. </p>
        <p class="- topic/p p">For example, say you specified a datetime column as a user-defined offset column, and
                  five records in the table share the same datetime value. Now say you happen to
                  stop the pipeline after it processes the second record. The pipeline stores the
                  datetime value as the offset where it stopped. When you restart the pipeline,
                  processing begins with the next datetime value, skipping the three unprocessed
                  records with the last-saved offset value. </p>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested3" aria-labelledby="ariaid-title13" id="concept_bmr_gmk_vbc">
    <h4 class="- topic/title title topictitle4" id="ariaid-title13">Best Effort: Processing Non-Compliant Tables</h4>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">To process tables in a table configuration that might not meet the partition processing
            requirements, you can use the On (Best Effort) option when you configure the
            Multithreaded Partition Processing mode property. </p>
        <p class="- topic/p p">When you select the best effort option, the origin performs multithreaded partition
            processing for all tables that meet the partition processing requirements. The origin
            performs multithreaded table processing for tables that include multiple key or offset
            columns. If you enable <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_edt_wbk_vbc">non-incremental processing</a>, the origin can also process all tables that do
            not include key or offset columns. </p>
    </div>
</article></article></article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title14" id="concept_edt_wbk_vbc">
    <h2 class="- topic/title title topictitle2" id="ariaid-title14">Non-Incremental Processing</h2>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">You can configure the Oracle Multitable Consumer origin to perform non-incremental
            processing for tables with no primary keys or user-defined offset columns. By default,
            the origin performs incremental processing and does not process tables without a key or
            offset column. </p>
        <p class="- topic/p p">You can enable non-incremental processing for the set of tables defined in a table
            configuration on the Tables tab.</p>
        <div class="- topic/p p">
            <div class="- topic/note note note note_note" id="concept_edt_wbk_vbc__note_gvz_ybk_vbc" data-ofbid="concept_edt_wbk_vbc__note_gvz_ybk_vbc"><span class="note__title">Note:</span> When enabling non-incremental processing for a table without
                a key or offset column, you cannot require <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_csl_2bk_vbc">multithreaded
                    partition processing</a> for the table configuration. That is, you cannot run
                the pipeline with the Multithreaded Partition Processing Mode property set to On
                (Required).</div>
        </div>
        <p class="- topic/p p">Use On (Best Effort) or Off to perform non-incremental processing of the table. With
            either option selected, table is processed using a single thread, like <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_gg5_p1k_vbc">multithreaded table
                processing</a>. </p>
        <div class="- topic/p p">When you enable non-incremental processing, the origin processes any table without a key
            or offset column as follows:<ul class="- topic/ul ul" id="concept_edt_wbk_vbc__ul_tzt_2nm_nbb" data-ofbid="concept_edt_wbk_vbc__ul_tzt_2nm_nbb">
                <li class="- topic/li li">The origin uses a single thread to process all available data in the table. </li>
                <li class="- topic/li li">After the origin processes all available data, it notes that the table has been
                    processed as an offset. So, if you stop and restart the pipeline after the
                    origin completes all processing, the origin does not reprocess the table. <p class="- topic/p p">If
                        you want to reprocess data in the table, you can reset the origin before
                        restarting the pipeline. This resets the origin for all tables that the
                        origin processes.</p></li>
                <li class="- topic/li li">If the pipeline stops while the origin is still processing available data, when
                    the pipeline restarts, the origin reprocesses the entire table. This occurs
                    because the table has no key or offset column to allow for tracking progress.
                </li>
            </ul></div>
        <p class="- topic/p p">For example, say you configure the origin to use five threads and process a set of tables
            that includes a table with no key or offset column. To process data in this table, you
            enable the Enable Non-Incremental Load table configuration property. You also set
            Multithreaded Partition Processing Mode to On (Best Effort) to allow the origin to use
            multithreaded partition processing when possible and allow both non-incremental
            processing and multithreaded table processing when needed.</p>
        <p class="- topic/p p">When you start the pipeline, the origin allocates one thread to the table that requires
            non-incremental processing. It processes the table data using multithreaded table
            processing until all data is processed. When the thread completes processing all
            available data, the origin notes this as part of the offset and the thread becomes
            available to process data from other tables. In the meantime, the four other threads
            process data from the rest of the tables using multithreaded partition processing when
            possible.</p>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title15" id="concept_qql_mck_vbc">
    <h2 class="- topic/title title topictitle2" id="ariaid-title15">Batch Strategy</h2>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">You can specify the batch strategy to use when processing data. The batch strategy
            behaves differently depending on whether you use multithreaded table processing or
            multithreaded partition processing. </p>
    </div>
<article class="- topic/topic concept/concept topic concept nested2" aria-labelledby="ariaid-title16" id="concept_gmx_5ck_vbc">
    <h3 class="- topic/title title topictitle3" id="ariaid-title16">Process All Available Rows</h3>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <div class="- topic/p p">The Process All Available Rows from the Table batch strategy differs slightly depending
            on whether the origin is processing full tables or partitions within a table. <dl class="- topic/dl dl" id="concept_gmx_5ck_vbc__dl_qw4_wck_vbc" data-ofbid="concept_gmx_5ck_vbc__dl_qw4_wck_vbc">
                
                    <dt class="- topic/dt dt dlterm" id="concept_gmx_5ck_vbc__multi-Table" data-ofbid="concept_gmx_5ck_vbc__multi-Table">Multithreaded table processing</dt>
                    <dd class="- topic/dd dd">
                        <p class="- topic/p p">When the origin performs multithreaded table processing for all tables,
                            each <span class="- topic/ph ph">thread processes all available rows from a
                            table. A thread runs a SQL query and processes all of the results for a
                            table. Then, the thread switches to the next available table.</span></p>
                    </dd>
                    <dd class="- topic/dd dd ddexpand">For example, let's say the origin has a maximum batch
                        size of 100 and uses two threads to read from four tables, each of which
                        contains 1000 rows. Thread 1 runs a SQL query to create 10 batches of 100
                        rows each from table A, while thread 2 uses the same strategy to read data
                        from table B. </dd>
                    <dd class="- topic/dd dd ddexpand">When table A and table B are fully read, the threads
                        switch to table C and table D and complete the same process. When thread 1
                        finishes reading from table C, it switches back to the next available table
                        to read any data that has arrived since the table was processed, starting
                        from the last saved offset.</dd>
                    <dd class="- topic/dd dd ddexpand">The number of threads that can process the
                        tables is limited by the Number of Threads property for the origin. </dd>
                    <dd class="- topic/dd dd ddexpand"><span class="- topic/ph ph">When the tables being processed use both
                            table and partition processing, the threads query the partitions as
                            described below. For details on how the tables and partitions rotate
                            through the processing queue, see</span>
                        <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_uph_fdk_vbc">Processing Queue</a>.</dd>
                
                
                    <dt class="- topic/dt dt dlterm">Multithreaded partition processing</dt>
                    <dd class="- topic/dd dd">Multithreaded partition processing is similar to
                        multithreaded table processing, except that it works at a partition level.
                        Each thread runs a SQL query for a partition and processes multiple batches
                        of data from the results. When all data in the partition is processed, the
                        thread switches to the next available partition. </dd>
                    <dd class="- topic/dd dd ddexpand">The number of threads that can process partitions
                        for each table is limited by the Number of Threads property for the origin
                        and the Max Active Partitions table property.</dd>
                    <dd class="- topic/dd dd ddexpand"><span class="- topic/ph ph">For details on how the tables and partitions
                            rotate through the processing queue, see</span>
                        <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_uph_fdk_vbc">Processing Queue</a>.</dd>
                
            </dl></div>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested2" aria-labelledby="ariaid-title17" id="concept_ajk_zck_vbc">
    <h3 class="- topic/title title topictitle3" id="ariaid-title17">Switch Tables</h3>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <div class="- topic/p p"><span class="- topic/ph ph">The Switch Tables batch strategy differs depending on whether
                the origin performs full table or partition processing. The number of batches that
                the origin creates before closing a result set is based on the Batches from Result
                Set property.</span>
            <div class="- topic/note note note note_note" id="concept_ajk_zck_vbc__note_bwq_bdk_vbc" data-ofbid="concept_ajk_zck_vbc__note_bwq_bdk_vbc"><span class="note__title">Note:</span> <span class="- topic/ph ph" id="concept_ajk_zck_vbc__ph_SwitchT-Heap">The Switch Tables
                    batch strategy can use a large amount of heap memory, depending on the Fetch
                    Size property and the JDBC driver being used. For example, some drivers prefetch
                    the rows for each table to reduce the number of round trips to the database,
                    which can result in a large amount of heap memory usage.</span> To limit the
                number of tables prefetched, you can use the Maximum Number of Tables
                property.</div></div>
        <div class="- topic/p p">
            <dl class="- topic/dl dl" id="concept_ajk_zck_vbc__dl_cwq_bdk_vbc" data-ofbid="concept_ajk_zck_vbc__dl_cwq_bdk_vbc">
                
                    <dt class="- topic/dt dt dlterm">Multithreaded table processing</dt>
                    <dd class="- topic/dd dd">When the origin performs multithreaded table processing for all tables, each
                            <span class="- topic/ph ph">thread processes one batch of data, then switches
                            to an available table and repeats the process. When a pipeline starts,
                            each thread runs a SQL query, generates a result set, and processes a
                            batch of records from the result set. The database driver caches the
                            remaining records for the same thread to access again. Then, the thread
                            switches to the next available table. </span></dd>
                    <dd class="- topic/dd dd ddexpand">A table is available in the following situations:<ul class="- topic/ul ul" id="concept_ajk_zck_vbc__ul_s1h_wg3_v1b" data-ofbid="concept_ajk_zck_vbc__ul_s1h_wg3_v1b">
                            <li class="- topic/li li">The table does not have a result set created by another thread.
                                    <p class="- topic/p p">In this case, the thread runs a SQL query to generate a
                                    result set and processes a batch of records. The database driver
                                    caches the remaining records for later use.</p></li>
                            <li class="- topic/li li">The table has a cached result set created by the same thread. <p class="- topic/p p">In
                                    this case, the thread creates the batch from the result set,
                                    rather than running another SQL query. </p></li>
                        </ul></dd>
                    <dd class="- topic/dd dd ddexpand">A table is not available when the table has a
                        result set created by another thread. A table with a cached result set can
                        only be processed by the thread that created the result set. And a table
                        cannot have multiple cached result sets.</dd>
                    <dd class="- topic/dd dd ddexpand">The Max Batch Size property limits the number of
                        records included in a batch. The Batches from Result Set property limits the
                        number of batches that a thread can create from the result set. After a
                        thread creates the configured number of batches, the thread closes the
                        result set. This allows a different thread to read from the table. </dd>
                    <dd class="- topic/dd dd ddexpand">For example, let's say an origin uses two concurrent
                        threads to read from three tables. Max Batch Size is set to 100 records, and
                        Batches from Result Set is set to 2. </dd>
                    <dd class="- topic/dd dd ddexpand">Thread 1 runs a SQL query on table A, which contains 80
                        records. The thread processes the 80 records in a single batch. In the
                        meantime, thread 2 runs a SQL query on table B, which contains 5000 records,
                        and caches the result set. The thread creates a batch to process the first
                        100 records in the table.</dd>
                    <dd class="- topic/dd dd ddexpand">After processing table A, thread 1 looks for the next
                        table to process. Thread 1 skips table B because the table has a cached
                        result set from thread 2, so thread 1 runs a SQL query on table C, which
                        contains 1000 records, and caches the result set. Thread 1 processes the
                        first 100 records in the table.</dd>
                    <dd class="- topic/dd dd ddexpand">Similarly, when thread 2 completes the batch on table B,
                        it skips table C because thread 1 has a result set cached for the table. If
                        table A had new data that came in, thread 2 would process that data, since
                        there is no result set for the table. But if table A has no additional data,
                        thread 2 returns to table B, where it has a cached result set. </dd>
                    <dd class="- topic/dd dd ddexpand">Since thread 2 has a cached result set on table B, it
                        creates a new batch from the result set instead of running a SQL query.
                        Since this is the second batch from the result set, thread 2 closes the
                        result set after processing the batch. This allows either thread to process
                        data from table B the next time they check the table.</dd>
                    <dd class="- topic/dd dd ddexpand"><span class="- topic/ph ph">When the tables being processed use both
                            table and partition processing, the threads query the partitions as
                            described below. For details on how the tables and partitions rotate
                            through the processing queue, see</span>
                        <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_uph_fdk_vbc">Processing Queue</a>.</dd>
                
                
                    <dt class="- topic/dt dt dlterm">Multithreaded partition processing</dt>
                    <dd class="- topic/dd dd">
                        <p class="- topic/p p">Multithreaded partition processing is similar to multithreaded table
                            processing. The behavior around caching the result set and the number of
                            batches to process from the result set is the same, but at a partition
                            level. Threads also skip processing partitions that already have a
                            result set cached from a different thread.</p>
                        <p class="- topic/p p">The difference is, when a thread works on a partition, all partitions
                            from the same table are moved to the end of the processing queue. This
                            allows the origin to switch to the next available table.</p>
                        <p class="- topic/p p">For examples of how tables and partitions rotate through the processing
                            queue, see <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_uph_fdk_vbc">Processing Queue</a>.</p>
                    </dd>
                
            </dl>
        </div>
    </div>
</article></article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title18" id="concept_m1c_5mk_vbc">
    <h2 class="- topic/title title topictitle2" id="ariaid-title18">Initial Table Order Strategy</h2>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <div class="- topic/p p">You can define one of the following initial table order strategies: <dl class="- topic/dl dl" id="concept_m1c_5mk_vbc__dl_zmv_xmk_vbc" data-ofbid="concept_m1c_5mk_vbc__dl_zmv_xmk_vbc">
                
                              <dt class="- topic/dt dt dlterm">None</dt>
                              <dd class="- topic/dd dd">Reads the tables in the order that they are listed in the
                                    database.</dd>
                        
                
                              <dt class="- topic/dt dt dlterm">Alphabetical</dt>
                              <dd class="- topic/dd dd">Reads the tables in alphabetical order.</dd>
                        
                
                              <dt class="- topic/dt dt dlterm">Referential Constraints</dt>
                              <dd class="- topic/dd dd">Reads the tables based on the dependencies between the tables. The
                                    origin reads the parent table first, and then reads the child
                                    tables that refer to the parent table with a foreign key.</dd>
                              <dd class="- topic/dd dd ddexpand">You cannot use the referential constraints order when the tables
                                    to be read have a cyclic dependency. When the origin detects a
                                    cyclic dependency, the pipeline fails to validate with the
                                    following
                                    error:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>JDBC_68 Tables referring to each other in a cyclic fashion.</code></pre></dd>
                              <dd class="- topic/dd dd ddexpand">Note that the referential constraints order can cause pipeline
                                    validation or initialization to slow down because the origin has
                                    to sort the tables before reading them.</dd>
                        
            </dl></div>
        <p class="- topic/p p">The origin uses this table order only for the initial reading of the tables. When threads
            switch back to previously read tables, they read from the next available table,
            regardless of the defined order.</p>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title19" id="concept_uph_fdk_vbc">
    <h2 class="- topic/title title topictitle2" id="ariaid-title19">Processing Queue</h2>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">The Oracle Multitable Consumer origin maintains a virtual queue to determine the data to
            process from different tables. The queue includes each table defined in the origin. When
            a table is to be processed by partition, multiple partitions for the table are added to
            the queue, limited by the Max Partitions property defined for each table configuration
            on the Tables tab. </p>
        <p class="- topic/p p">The origin rotates and reorganizes the queue based on the Per Batch Strategy property.
            The origin processes data from the queue with the threads specified in the Number of
            Threads property and the Batches from Result Set property. </p>
        <p class="- topic/p p">Below are some scenarios to show how the queue works.</p>
    </div>
<article class="- topic/topic concept/concept topic concept nested2" aria-labelledby="ariaid-title20" id="concept_pqd_zyh_v1b">
    <h3 class="- topic/title title topictitle3" id="ariaid-title20">Multithreaded Table Processing Only</h3>
    <div class="- topic/body concept/conbody body conbody">
        <div class="- topic/p p" id="concept_pqd_zyh_v1b__p_PQTablesOnly_Config" data-ofbid="concept_pqd_zyh_v1b__p_PQTablesOnly_Config">The origin
            performs only multithreaded table processing in either of the following situations:<ul class="- topic/ul ul" id="concept_pqd_zyh_v1b__ul_drh_2jy_qjb" data-ofbid="concept_pqd_zyh_v1b__ul_drh_2jy_qjb">
                <li class="- topic/li li">Multithreaded Partition Processing Mode property is set to Off.</li>
                <li class="- topic/li li">Multithreaded Partition Processing Mode property is set to On (Best Effort) and
                    no tables meet the partition processing requirements.</li>
            </ul></div>
        <div class="- topic/p p">Say you have tables A, B, C and D that you configure for table processing. When you start
            the pipeline, the origin adds all tables to the queue. If configured, the Initial Table
            Order Strategy advanced property can affect the order. Let's assume we have no
            referential constraints and use alphabetical order:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>A  B  C  D</code></pre>When
            a thread becomes available, it processes data from the first table in the queue. The
            processing of the tables depends on how you define the Per Batch Strategy property:<dl class="- topic/dl dl">
                
                    <dt class="- topic/dt dt dlterm">Process All Available Rows in the Table</dt>
                    <dd class="- topic/dd dd">With this batch strategy, threads process all data in a table before
                        proceeding to the next table. </dd>
                    <dd class="- topic/dd dd ddexpand">
                        <p class="- topic/p p">For example, say you have two threads. Thread 1 processes table A, thread
                            2 processes table B. That leaves the remaining tables in the queue, as
                            follows: </p>
                        <pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>C  D</code></pre>
                    </dd>
                    <dd class="- topic/dd dd ddexpand">The first available thread then processes table C, and the next processes
                        table D. </dd>
                    <dd class="- topic/dd dd ddexpand">If additional data is written to one of the processed tables, the table is
                        placed at the end the queue. </dd>
                
            </dl><dl class="- topic/dl dl">
                
                    <dt class="- topic/dt dt dlterm">Switch Tables</dt>
                    <dd class="- topic/dd dd">With this batch strategy, each thread processes a single batch from a table
                        before moving to the next available table, so the threads cycle through the
                        tables quickly. </dd>
                    <dd class="- topic/dd dd ddexpand">After a thread performs a SQL query, it creates a batch and caches a result
                        set for future use. As long as a thread has a result set cached for a table,
                        other threads skip that table. The result set is closed based on the Batches
                        from Result Set property. So, if the property is set to 2, then the thread
                        must cycle back and create a second batch for the table before closing the
                        result set. Closing the result set enables any thread to process the
                        table.</dd>
                    <dd class="- topic/dd dd ddexpand"><p class="- topic/p p">Say you have two threads, one processes table A, the other processes
                            table B. They each create one batch and cache a result set. Then, those
                            tables move to the back of the queue, as
                            follows:</p><pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>C  D  A  B</code></pre><div class="- topic/p p">The threads repeat the
                            same process for table C and D, and those tables move to the back of the
                            queue:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>A  B  C  D  </code></pre></div>So, after four batches are
                        processed, the queue looks like it did in the beginning. <p class="- topic/p p">When cycling
                            back to table A and B, each thread returns to the original table that
                            they processed, creating a batch from its cached result set. That is, if
                            thread 1 cached a result set on table A and thread 2 cached a result set
                            on table B, they both go back to those tables to process a second batch.
                            </p><p class="- topic/p p">After each thread processes a second batch from their result
                            sets, they close the result sets. Then, the next time the tables appear
                            at the front of the queue, either thread can process them.</p></dd>
                
            </dl></div>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested2" aria-labelledby="ariaid-title21" id="concept_sjh_213_v1b">
    <h3 class="- topic/title title topictitle3" id="ariaid-title21">Multithreaded Partition Processing Only</h3>
    <div class="- topic/body concept/conbody body conbody">
        <div class="- topic/p p">The
            origin performs only multithreaded partition processing in either of the following
                situations:<ul class="- topic/ul ul" id="concept_sjh_213_v1b__ul_hgh_9ld_qjb" data-ofbid="concept_sjh_213_v1b__ul_hgh_9ld_qjb">
                <li class="- topic/li li">Multithreaded Partition Processing Mode property is set to On (Required).</li>
                <li class="- topic/li li">Multithreaded Partition Processing Mode property is set to On (Best Effort) and
                    all tables meet the partition processing requirements.</li>
            </ul></div>
        <p class="- topic/p p">Say you have tables A, B, and C, and all three tables have a lot of data to process.
            Tables A and B are configured with a maximum of 3 active partitions. And since table C
            has the largest volume of data, you allow an unlimited number of partitions, which means
            double the number of threads for the pipeline. Again, let's use the alphabetical initial
            table ordering. </p>
        <div class="- topic/p p">A partition remains in the queue until the origin confirms that there is no more data in
            the partition. When a thread becomes available, it creates a batch from the first
            available partition of the first table in the queue. The order of tables and partitions
            in the queue depends on how you define the Per Batch Strategy, as follows:<dl class="- topic/dl dl">
                
                    <dt class="- topic/dt dt dlterm">Process All Available Rows in the Table</dt>
                    <dd class="- topic/dd dd">As when processing tables, when processing partitions with this batch
                        strategy, threads process all data in a partition before proceeding to the
                        next partition. <div class="- topic/note note note note_note"><span class="note__title">Note:</span> In practice, this means that rows from subsequent
                            tables can be processed before a previous table is completed, since
                            available threads continue to pick up partitions from the
                        queue.</div></dd>
                    <dd class="- topic/dd dd ddexpand">For example, say we configure the pipeline for 4 threads. That means table C
                        can have up to 8 partitions in the queue at any given time. So the initial
                        queue looks like
                        this:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>A1  A2  A3  B1  B2  B3  C1  C2  C3  C4  C5  C6  C7  C8 </code></pre>The
                        four threads start processing on the first four partitions in the queue: A1,
                        A2, A3, and B1. This puts B2 at the front of the queue, ready for the next
                        available thread.
                        <pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>B2  B3  C1  C2  C3  C4  C5  C6  C7  C8</code></pre>Note that in
                        this situation, the processing of table B data begins before table A is
                        fully processed. </dd>
                    <dd class="- topic/dd dd ddexpand">After the four threads process another four sets of batches, the queue looks
                        like this:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>C3  C4  C5  C6  C7  C8</code></pre></dd>
                    <dd class="- topic/dd dd ddexpand">If additional data is written to the processed partitions, those partitions
                        are placed at the end of the queue. So if data is written to A3, the queue
                        looks like this:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>C3  C4  C5  C6  C7  C8  A3</code></pre></dd>
                
                
                    <dt class="- topic/dt dt dlterm">Switch Tables</dt>
                    <dd class="- topic/dd dd">As when processing tables, when processing partitions with this batch
                        strategy, each thread processes a single batch from a partition before
                        moving to the next available partition, so the threads cycle through the
                        partitions quickly. </dd>
                    <dd class="- topic/dd dd ddexpand">Also like processing tables, when a thread performs a SQL query to create a
                        batch, it also caches a result set for future use. As long as a thread has a
                        result set cached for a partition, other threads skip that partition. The
                        result set is closed based on the Batches from Result Set property. So, if
                        the property is set to 2, then the thread must cycle back and create a
                        second batch for the partition before closing the result set. Closing the
                        result set enables any thread to access the partition. </dd>
                    <dd class="- topic/dd dd ddexpand">Unique to partition processing, this batch strategy forces all subsequent,
                        consecutive partitions from the same table to the end of the queue each time
                        a thread processes a batch from a partition.</dd>
                    <dd class="- topic/dd dd ddexpand">
                        <p class="- topic/p p">Let's start again with the initial batch order, but this time let's say
                            we have three threads, so table C is limited to 6 partitions:</p>
                        <pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>A1  A2  A3  B1  B2  B3  C1  C2  C3  C4  C5  C6</code></pre>
                    </dd>
                    <dd class="- topic/dd dd ddexpand">When the pipeline starts, thread 1 takes A1, processing one batch and
                        caching a result set. To switch tables, the rest of the table A partitions
                        move to the end of the queue, and A1 takes the last position because it
                        still has additional data to be processed:
                        <pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>B1  B2  B3  C1  C2  C3  C4  C5  C6  A2  A3  A1 </code></pre>Similarly,
                        thread 2 takes B1, processing one batch and caching a result set. The rest
                        of the table B partitions move to the end of the queue, with B1 at the very
                        end:
                        <pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>C1  C2  C3  C4  C5  C6  A2  A3  A1  B2  B3  B1</code></pre>Thread
                        3 takes C1, processing one batch and caching the rest of the data in a
                        result set. The rest of the table C partitions move to the end of the queue,
                        with C1 at the very end:
                        <pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>A2  A3  A1  B2  B3  B1  C2  C3  C4  C5  C6  C1</code></pre></dd>
                    <dd class="- topic/dd dd ddexpand">Available threads continue taking the first partition in the queue as
                        follows:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>B2  B3  B1  C2  C3  C4  C5  C6  C1  A3  A1  A2
C2  C3  C4  C5  C6  C1  A3  A1  A2  B3  B1  B2
A3  A1  A2  B3  B1  B2  C3  C4  C5  C6  C1  C2
B3  B1  B2  C3  C4  C5  C6  C1  C2  A1  A2  A3
C3  C4  C5  C6  C1  C2  A1  A2  A3  B1  B2  B3
A1  A2  A3  B1  B2  B3  C4  C5  C6  C1  C2  C3</code></pre></dd>
                    <dd class="- topic/dd dd ddexpand">At this point, all of the A and B partitions, and partitions C1, C2, and C3,
                        have one batch of data processed and cached result sets. The remaining C
                        partitions have yet to be touched. </dd>
                    <dd class="- topic/dd dd ddexpand">A1 was processed by thread 1. Say, A2 and A3 were processed by thread 3, and
                        thread 2 is now available. Which partition does thread 2 take?</dd>
                    <dd class="- topic/dd dd ddexpand">Thread 2 skips all of the A partitions because they have existing cached
                        result sets from other threads. Instead, thread 2 takes B1, which has a
                        result set that it created. Then, the other B partitions move to the end
                        with B1 following. The A partitions remain at the front of the
                        queue:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>A1  A2  A3  C4  C5  C6  C7  C8  C1  C2  C3  B2  B3  B1</code></pre></dd>
                    <dd class="- topic/dd dd ddexpand">After processing this second batch from the B1 result set, thread 2 closes
                        the result set. This allows any thread to process data from B1 the next time
                        it comes to the front of the queue. </dd>
                    <dd class="- topic/dd dd ddexpand">If thread 3 becomes available next, it also skips A1 and takes A2, which has
                        a result set that it created. This results in the following
                        order:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>C4  C5  C6  C7  C8  C1  C2  C3  B2  B3  B1  A1  A3  A2</code></pre></dd>
                    <dd class="- topic/dd dd ddexpand">After processing this second batch from the A2 result set, thread 3 closes
                        the result set. This allows any thread to process data from A2 the next time
                        it comes to the front of the queue. </dd>
                
            </dl></div>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested2" aria-labelledby="ariaid-title22" id="concept_tfm_513_v1b">
    <h3 class="- topic/title title topictitle3" id="ariaid-title22">Both Multithreaded Partition and Table Processing</h3>
    <div class="- topic/body concept/conbody body conbody">
        <div class="- topic/p p">The origin performs both multithreaded partition
            processing and multithreaded table processing in the following situation:<ul class="- topic/ul ul" id="concept_tfm_513_v1b__ul_a3n_dmy_qjb" data-ofbid="concept_tfm_513_v1b__ul_a3n_dmy_qjb">
                <li class="- topic/li li">Multithreaded Partition Processing Mode property is set to On (Best Effort) and
                    some tables meet the partition processing requirements while other tables do
                    not.</li>
            </ul></div>
        <p class="- topic/p p">When processing a mix of full tables and partitioned tables, the queue basically behaves
            the same as when processing only partitions, with full tables being processed as a
            single partition. Let's walk through it....</p>
        <div class="- topic/p p">Say we have table A being processed without partitions, and table B configured with a
            maximum of 3 partitions, and table C with no limit. As in the example above, the
            pipeline has 3 threads to work with which grants 6 partitions to table C. Using the
            alphabetical initial table ordering, the initial queue looks like
            this:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>A  B1  B2  B3  C1  C2  C3  C4  C5  C6</code></pre>When a thread becomes
            available, it processes the first table or partition in the queue. The order of the
            queue depends on how you define the Per Batch Strategy, as follows:<dl class="- topic/dl dl">
                
                    <dt class="- topic/dt dt dlterm">Process All Available Rows in the Table</dt>
                    <dd class="- topic/dd dd">When processing tables and partitions with this batch strategy, threads
                        process all data in a table or partition before proceeding to the next
                        partition. An unpartitioned table, like table A, is processed like a table
                        with a single partition. <p class="- topic/p p">When the pipeline starts, the 3 threads process
                            a set of batches from table A and from partitions B1 and B2, leaving the
                            queue like this:
                            </p><pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>B3  C1  C2  C3  C4  C5  C6</code></pre><div class="- topic/p p">As each thread
                            completes processing, it picks up the next table or partition at the
                            front of the queue. After each of the 3 threads takes another table or
                            partition, the queue looks like
                            this:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>C3  C4  C5  C6  </code></pre></div></dd>
                    <dd class="- topic/dd dd ddexpand">If additional data is written to one of the processed tables or partitions,
                        the table or partition is placed at the end of the queue. </dd>
                
                
                    <dt class="- topic/dt dt dlterm">Switch Tables</dt>
                    <dd class="- topic/dd dd">When processing tables and partitions with this batch strategy, each thread
                        processes a single batch from a table or partition before moving to the next
                        available table or partition, so the threads cycle through the queue
                        quickly. </dd>
                    <dd class="- topic/dd dd ddexpand">When a thread performs a SQL query to create a batch, it also caches a
                        result set for future use. As long as a thread has a result set cached for a
                        table or partition, other threads skip that table or partition. The result
                        set is closed based on the Batches from Result Set property. So, if the
                        property is set to 2, then the thread must cycle back and create a second
                        batch for the table or partition before closing the result set. This enables
                        any thread to access the table or partition. </dd>
                    <dd class="- topic/dd dd ddexpand">When processing tables and partitions, this batch strategy forces all
                        subsequent, consecutive partitions from the same table to the end of the
                        queue. It also treats unpartitioned tables as a single partition. As a
                        result, the queue rotation is a simplified version of processing only
                        partitioned tables. <p class="- topic/p p">So we have this initial order:</p><div class="- topic/p p">
                            <pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>A  B1  B2  B3  C1  C2  C3  C4  C5  C6</code></pre>
                        </div><div class="- topic/p p">Thread 1 processes a batch from table A and caches a result set.
                            Then, table A moves to the end of the queue:
                            <pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>B1  B2  B3  C1  C2  C3  C4  C5  C6  A</code></pre></div><p class="- topic/p p">Thread
                            2 processes batch from B1 and caches a result set. The rest of the table
                            B partitions move to the end of the queue, with B1 at the end because it
                            contains more data to be processed:</p><div class="- topic/p p">
                            <pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>C1  C2  C3  C4  C5  C6  A  B2  B3  B1</code></pre>
                        </div><div class="- topic/p p">Thread 3 processes a batch from C1 and caches a result set. The rest
                            of the table C partitions move to the end of the queue, with C1 at the
                            end because it contains more data to be processed:
                            <pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>A  B2  B3  B1  C2  C3  C4  C5  C6  C7  C8  C1</code></pre></div><p class="- topic/p p">Now,
                            say thread 2 is the first thread to become available. Though table A is
                            at the front of the queue, table A also has a result set cached by
                            thread 1. Only thread 1 can process table A while the result set remains
                            open, so thread 2 skips table A and takes B2.</p><div class="- topic/p p">This leaves A in the
                            front of the queue. The B partitions get pushed to the end of the queue,
                            with B2 at the very end, as
                            follows:<pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>A C2  C3  C4  C5  C6  C7  C8  C1  B3  B1  B2</code></pre></div><p class="- topic/p p">Thread
                            1 then becomes available. Since it has a cached result set on table A,
                            it creates a batch from the result set and moves A to the end of the
                            queue: </p></dd>
                    <dd class="- topic/dd dd ddexpand">
                        <div class="- topic/p p">
                            <pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>B2  B3  B1  C2  C3  C4  C5  C6  C7  C8  C1  A</code></pre>
                        </div>
                    </dd>
                    <dd class="- topic/dd dd ddexpand">After processing this second batch from the table A result set, thread 1
                        closes the result set. This allows any thread to process data from table A
                        the next time it comes to the front of the queue. </dd>
                
            </dl></div>
    </div>
</article></article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title23" id="concept_odl_vnk_vbc">
    <h2 class="- topic/title title topictitle2" id="ariaid-title23">Generated Records</h2>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">The Oracle Multitable Consumer origin generates record header attributes and field
            attributes that provide additional information about each record and field.</p>
    </div>
<article class="- topic/topic concept/concept topic concept nested2" aria-labelledby="ariaid-title24" id="concept_rxg_xkl_vbc">
    <h3 class="- topic/title title topictitle3" id="ariaid-title24">CRUD Operation Header Attributes</h3>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <div class="- topic/p p">The Oracle Multitable Consumer origin specifies the operation type for generated records
            in the following record header attributes: <dl class="- topic/dl dl" id="concept_rxg_xkl_vbc__dl_n11_1ll_vbc" data-ofbid="concept_rxg_xkl_vbc__dl_n11_1ll_vbc">
                
                    <dt class="- topic/dt dt dlterm">sdc.operation.type</dt>
                    <dd class="- topic/dd dd">The origin evaluates the <span class="- topic/ph ph">operation type associated
                            with each entry that it processes. When appropriate, it writes the
                            operation type to the <code class="+ topic/ph pr-d/codeph ph codeph">sdc.operation.type</code> record header
                            attribute.</span></dd>
                    <dd class="- topic/dd dd ddexpand">The origin uses the following values in the attribute to
                        represent the operation type: </dd>
                    <dd class="- topic/dd dd ddexpand">
                        <ul class="- topic/ul ul" id="concept_rxg_xkl_vbc__ul_dkt_g5l_dy" data-ofbid="concept_rxg_xkl_vbc__ul_dkt_g5l_dy">
                            <li class="- topic/li li">1 for INSERT</li>
                            <li class="- topic/li li">2 for DELETE</li>
                            <li class="- topic/li li">3 for UPDATE</li>
                            <li class="- topic/li li">4 for MERGE</li>
                        </ul>
                    </dd>
                    <dd class="- topic/dd dd ddexpand">
                        <p class="- topic/p p">If you use a CRUD-enabled destination in the pipeline such as
                  JDBC Producer or Elasticsearch, the destination can use the operation type when
                  writing to destination systems. When necessary, you can use <span class="- topic/ph ph">an Expression Evaluator processor or any scripting
                        processor</span> to manipulate the
                  value in the header attribute. For an overview of <span class="- topic/ph ph">Data Collector</span> changed data
                  processing and a list of CRUD-enabled destinations, see <a class="- topic/xref xref" href="../Pipeline_Design/CDC-Overview.html#concept_apw_l2c_ty">Processing Changed Data</a>.</p>
                    </dd>
                    <dd class="- topic/dd dd ddexpand">When using CRUD-enabled destinations, the destination looks for the
                        operation type in this attribute before checking the following
                        attribute.</dd>
                
                
                    <dt class="- topic/dt dt dlterm">oracle.cdc.operation </dt>
                    <dd class="- topic/dd dd"><span class="- topic/ph ph">The origin also writes the CRUD operation type to an
                                <code class="+ topic/ph pr-d/codeph ph codeph">oracle.cdc.operation</code> attribute. This attribute was
                            implemented in an earlier release and is supported for backward
                            compatibility.</span></dd>
                    <dd class="- topic/dd dd ddexpand">The origin uses the following values in the attribute to represent the
                        operation type: <ul class="- topic/ul ul" id="concept_rxg_xkl_vbc__ul_mpx_s13_5y" data-ofbid="concept_rxg_xkl_vbc__ul_mpx_s13_5y">
                            <li class="- topic/li li">INSERT</li>
                            <li class="- topic/li li">UPDATE</li>
                            <li class="- topic/li li">DELETE</li>
                            <li class="- topic/li li">MERGE</li>
                        </ul></dd>
                    <dd class="- topic/dd dd ddexpand">CRUD-enabled destinations check this attribute for
                        the operation type only if the <code class="+ topic/ph pr-d/codeph ph codeph">sdc.operation.type</code> attribute
                        is not set.</dd>
                
            </dl></div>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested2" aria-labelledby="ariaid-title25" id="concept_ufc_j4k_vbc">
    <h3 class="- topic/title title topictitle3" id="ariaid-title25">JDBC Header Attributes</h3>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">By default, the Oracle Multitable Consumer origin generates JDBC record header attributes
            that provide additional information about each record, such as the original data type of
            a field or the source tables for the record.</p>
        <p class="- topic/p p"><span class="- topic/ph ph" id="concept_ufc_j4k_vbc__ph-functions">You can use the <code class="+ topic/ph pr-d/codeph ph codeph">record:attribute</code> or
                    <code class="+ topic/ph pr-d/codeph ph codeph">record:attributeOrDefault</code> functions to access the information
                in the attributes. For more information about working with record header attributes,
                see <a class="- topic/xref xref" href="../Pipeline_Design/RecordHeaderAttributes.html#concept_rd2_ghz_dz">Working with Header Attributes</a>.</span></p>
        <p class="- topic/p p">JDBC record header attributes include a <code class="+ topic/ph pr-d/codeph ph codeph">jdbc</code> prefix to differentiate
                  the JDBC attributes from other record header attributes.</p>
        <p class="- topic/p p">You can configure the origin to skip creating JDBC header attributes by clearing the
                  Create JDBC Header Attributes property on the Advanced tab.</p>
        <div class="- topic/p p">The origin can provide the following JDBC header attributes:<div class="table-container"><table class="- topic/table table frame-all" id="concept_ufc_j4k_vbc__table_p1c_q5c_kw" data-ofbid="concept_ufc_j4k_vbc__table_p1c_q5c_kw" data-cols="2"><caption></caption><colgroup><col style="width:33.33333333333333%"/><col style="width:66.66666666666666%"/></colgroup><thead class="- topic/thead thead">
                        <tr class="- topic/row">
                            <th class="- topic/entry entry colsep-1 rowsep-1" id="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__1">JDBC Header Attribute</th>
                            <th class="- topic/entry entry colsep-0 rowsep-1" id="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__2">Description</th>
                        </tr>
                    </thead><tbody class="- topic/tbody tbody">
                        <tr class="- topic/row">
                            <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__1">jdbc.tables</td>
                            <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__2">
                                <div class="- topic/p p"><span class="- topic/ph ph" id="concept_ufc_j4k_vbc__ph-jdbc.tables-desc-providesListOfTables">Provides a
                                        comma-separated list of source tables for the fields in the
                                        record.</span><div class="- topic/note note note note_note" id="concept_ufc_j4k_vbc__note-jdbc.tables" data-ofbid="concept_ufc_j4k_vbc__note-jdbc.tables"><span class="note__title">Note:</span> Not all JDBC drivers
                                        provide this information.</div></div>
                            </td>
                        </tr>
                        <tr class="- topic/row">
                                          <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__1">jdbc.partition</td>
                                          <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__2">Provides the full offset key for the partition that
                                                produced the record.</td>
                                    </tr>
                        <tr class="- topic/row">
                                          <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__1">jdbc.threadNumber</td>
                                          <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__2">Provides the number of the thread that produced the
                                                record. </td>
                                    </tr>
                        <tr class="- topic/row">
                                          <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__1">jdbc.vendor</td>
                                          <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__2">Provides the name of the database vendor.</td>
                                    </tr>
                        <tr class="- topic/row">
                                          <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__1">jdbc.&lt;column name&gt;.jdbcType</td>
                                          <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__2"><span class="- topic/ph ph" id="concept_ufc_j4k_vbc__ph-Desc-jdbcType-attribute">Provides
                                    the numeric value of the original SQL data type for each field
                                    in the record. See the <a class="- topic/xref xref" href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.sql.Types.ARRAY" target="_blank" rel="external noopener">Java documentation</a> for
                                    a list of the data types that correspond to numeric
                                values.</span></td>
                                    </tr>
                        <tr class="- topic/row">
                                          <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__1">jdbc.&lt;column name&gt;.precision</td>
                                          <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__2">Provides the original precision for all
                                numeric and decimal fields. </td>
                                    </tr>
                        <tr class="- topic/row">
                                          <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__1">jdbc.&lt;column name&gt;.scale</td>
                                          <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__2">Provides the original scale for all numeric
                                and decimal fields. </td>
                                    </tr>
                        <tr class="- topic/row">
                                          <td class="- topic/entry entry colsep-1 rowsep-0" headers="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__1">jdbc.primaryKeySpecification</td>
                                          <td class="- topic/entry entry colsep-0 rowsep-0" headers="concept_ufc_j4k_vbc__table_p1c_q5c_kw__entry__2"><span class="- topic/ph ph">Provides a JSON-formatted
                        string that lists the columns that form the primary key in the table and the
                        metadata for those columns. </span><div class="- topic/p p">For example, a table with a
                        composite primary key contains the following attribute:
                        <pre class="+ topic/pre pr-d/codeblock pre codeblock" id="concept_ufc_j4k_vbc__codeblock_jdbc.primaryKeySpecification" data-ofbid="concept_ufc_j4k_vbc__codeblock_jdbc.primaryKeySpecification"><code>jdbc.primaryKeySpecification = 
     {{"&lt;primary key column 1 name&gt;":
         {"type": &lt;type&gt;, 
          "datatype": "&lt;data type&gt;", 
          "size": &lt;size&gt;, 
          "precision": &lt;precision&gt;, 
          "scale": &lt;scale&gt;, 
          "signed": &lt;Boolean&gt;,  
          "currency": &lt;Boolean&gt; }},
          ...,
     {"&lt;primary key column N name&gt;":
         {"type": &lt;type&gt;, 
          "datatype": "&lt;data type&gt;", 
          "size": &lt;size&gt;, 
          "precision": &lt;precision&gt;, 
          "scale": &lt;scale&gt;, 
          "signed": &lt;Boolean&gt;,  
          "currency": &lt;Boolean&gt; } } }</code></pre></div><div class="- topic/p p">A table without a primary key
                        contains the attribute with an empty value:
                        <pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>jdbc.primaryKeySpecification = {} </code></pre></div></td>
                                    </tr>
                    </tbody></table></div></div>
    </div>
</article><article class="- topic/topic concept/concept topic concept nested2" aria-labelledby="ariaid-title26" id="concept_blz_dpk_vbc">
    <h3 class="- topic/title title topictitle3" id="ariaid-title26">JDBC Field Attributes</h3>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">The Oracle Multitable Consumer origin generates field attributes for columns converted to
            the Decimal or Datetime data types in <span class="- topic/ph ph">Data Collector</span>.
            The attributes provide additional information about each field.</p>
        <div class="- topic/p p">The following data type conversions do not include all information in
            the corresponding <span class="- topic/ph ph">Data Collector</span>
            data type:<ul class="- topic/ul ul" id="concept_blz_dpk_vbc__ul_v2b_mlg_wkb" data-ofbid="concept_blz_dpk_vbc__ul_v2b_mlg_wkb">
                <li class="- topic/li li">Decimal and Numeric data types are converted to the <span class="- topic/ph ph">Data Collector</span> Decimal data type, which does not store scale and precision.</li>
                <li class="- topic/li li">The Timestamp data type is converted to the <span class="- topic/ph ph">Data Collector</span> Datetime data type, which does not store nanoseconds.</li>
            </ul></div>
        <div class="- topic/p p">To preserve this information during data type conversion, the origin
            generates the following field attributes for these <span class="- topic/ph ph">Data Collector</span>
            data types:<div class="table-container"><table class="- topic/table table frame-all" id="concept_blz_dpk_vbc__table_fyk_pkg_wkb" data-ofbid="concept_blz_dpk_vbc__table_fyk_pkg_wkb" data-cols="3"><caption></caption><colgroup><col style="width:16.666666666666664%"/><col style="width:25%"/><col style="width:58.333333333333336%"/></colgroup><thead class="- topic/thead thead">
                        <tr class="- topic/row">
                            <th class="- topic/entry entry colsep-1 rowsep-1" id="concept_blz_dpk_vbc__table_fyk_pkg_wkb__entry__1"><span class="- topic/ph ph">Data Collector</span> Data Type</th>
                            <th class="- topic/entry entry colsep-1 rowsep-1" id="concept_blz_dpk_vbc__table_fyk_pkg_wkb__entry__2">Generated Field Attribute</th>
                            <th class="- topic/entry entry colsep-0 rowsep-1" id="concept_blz_dpk_vbc__table_fyk_pkg_wkb__entry__3">Description</th>
                        </tr>
                    </thead><tbody class="- topic/tbody tbody">
                        <tr class="- topic/row">
                            <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_blz_dpk_vbc__table_fyk_pkg_wkb__entry__1">Decimal</td>
                            <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_blz_dpk_vbc__table_fyk_pkg_wkb__entry__2">precision</td>
                            <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_blz_dpk_vbc__table_fyk_pkg_wkb__entry__3">Provides the original precision for every decimal or numeric
                                column.</td>
                        </tr>
                        <tr class="- topic/row">
                            <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_blz_dpk_vbc__table_fyk_pkg_wkb__entry__1">Decimal</td>
                            <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_blz_dpk_vbc__table_fyk_pkg_wkb__entry__2">scale</td>
                            <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_blz_dpk_vbc__table_fyk_pkg_wkb__entry__3">Provides the original scale for every decimal or numeric
                                column.</td>
                        </tr>
                        <tr class="- topic/row">
                            <td class="- topic/entry entry colsep-1 rowsep-0" headers="concept_blz_dpk_vbc__table_fyk_pkg_wkb__entry__1">Datetime</td>
                            <td class="- topic/entry entry colsep-1 rowsep-0" headers="concept_blz_dpk_vbc__table_fyk_pkg_wkb__entry__2">nanoSeconds</td>
                            <td class="- topic/entry entry colsep-0 rowsep-0" headers="concept_blz_dpk_vbc__table_fyk_pkg_wkb__entry__3">Provides the original nanoseconds for every timestamp
                                column.</td>
                        </tr>
                    </tbody></table></div></div>
        <p class="- topic/p p">You can use the <code class="+ topic/ph pr-d/codeph ph codeph">record:fieldAttribute</code> or
                <code class="+ topic/ph pr-d/codeph ph codeph">record:fieldAttributeOrDefault</code> functions to access the information
            in the attributes. For more information about working with field attributes, see <a class="- topic/xref xref" href="../Pipeline_Design/FieldAttributes.html#concept_xfm_wtp_1z">Field Attributes</a>.</p>
    </div>
</article></article><article class="- topic/topic concept/concept topic concept nested1" aria-labelledby="ariaid-title27" id="concept_tnw_1vj_vbc">
    <h2 class="- topic/title title topictitle2" id="ariaid-title27">Event Generation</h2>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <p class="- topic/p p">The Oracle  Multitable Consumer origin <span class="- topic/ph ph">can generate events that you can use in an event stream. When you
                              enable event generation, the origin generates an event when it
                              completes processing the data returned by the specified</span> queries for all tables. It also generates events when it completes processing the
            data returned from a table and the data returned from a schema. </p>
        <div class="- topic/p p">Oracle Multitable Consumer events can be used in any logical way. For example: <ul class="- topic/ul ul" id="concept_tnw_1vj_vbc__ul_xjk_kf1_4z" data-ofbid="concept_tnw_1vj_vbc__ul_xjk_kf1_4z">
                <li class="- topic/li li">With the Pipeline Finisher executor to
                              stop the pipeline and transition the pipeline to a Finished state when
                              the origin completes processing available data.<p class="- topic/p p">When you restart a
                                    pipeline stopped by the Pipeline Finisher executor, the origin
                                    continues processing from the last-saved offset unless you reset
                                    the origin.</p><p class="- topic/p p">For an example, see <a class="- topic/xref xref" href="../Solutions/StopPipeline.html#concept_kff_ykv_lz">Stopping a Pipeline After Processing All Available Data</a>.</p></li>
                <li class="- topic/li li">With the Email executor to send a custom email
                              after receiving an event.<p class="- topic/p p">For an example, see <a class="- topic/xref xref" href="../Solutions/SendEmail.html#concept_t2t_lp5_xz">Sending Email During Pipeline Processing</a>.</p></li>
            </ul><ul class="- topic/ul ul" id="concept_tnw_1vj_vbc__ul_fjm_fhs_kz" data-ofbid="concept_tnw_1vj_vbc__ul_fjm_fhs_kz">
                        <li class="- topic/li li">
                              <p class="- topic/p p">With a destination to store information about completed queries. </p>
                              <p class="- topic/p p">For an example, see <a class="- topic/xref xref" href="../Solutions/EventStorage.html#concept_ocb_nnl_px">Preserving an Audit Trail of Events</a>.</p>
                        </li>
                  </ul></div>
        <p class="- topic/p p"><span class="- topic/ph ph">For more information about dataflow
                        triggers and the event framework, see <a class="- topic/xref xref" href="../Event_Handling/EventFramework-Title.html#concept_cph_5h4_lx">Dataflow Triggers Overview</a>.</span></p>
    </div>
<article class="- topic/topic concept/concept topic concept nested2" aria-labelledby="ariaid-title28" id="concept_yz1_4vj_vbc">
    <h3 class="- topic/title title topictitle3" id="ariaid-title28">Event Records</h3>
    
    <div class="- topic/body concept/conbody body conbody"><p class="- topic/shortdesc shortdesc"></p>
        <div class="- topic/p p">Event records generated by Oracle Multitable Consumer origin have the following
            event-related record header attributes:<div class="table-container"><table class="- topic/table table frame-all" id="concept_yz1_4vj_vbc__EventHead-NoMoreData-table" data-ofbid="concept_yz1_4vj_vbc__EventHead-NoMoreData-table" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                        <tr class="- topic/row">
                            <th class="- topic/entry entry colsep-1 rowsep-1" id="concept_yz1_4vj_vbc__EventHead-NoMoreData-table__entry__1">Record Header Attribute</th>
                            <th class="- topic/entry entry colsep-0 rowsep-1" id="concept_yz1_4vj_vbc__EventHead-NoMoreData-table__entry__2">Description</th>
                        </tr>
                    </thead><tbody class="- topic/tbody tbody">
                        <tr class="- topic/row">
                            <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_yz1_4vj_vbc__EventHead-NoMoreData-table__entry__1">sdc.event.type</td>
                            <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_yz1_4vj_vbc__EventHead-NoMoreData-table__entry__2">Event type. Uses the following type:<ul class="- topic/ul ul" id="concept_yz1_4vj_vbc__ul_f4w_xrs_kz" data-ofbid="concept_yz1_4vj_vbc__ul_f4w_xrs_kz">
                                    <li class="- topic/li li" id="concept_yz1_4vj_vbc__noMoreData-bullet" data-ofbid="concept_yz1_4vj_vbc__noMoreData-bullet">no-more-data - Generated when the
                                        origin completes processing all data returned by the queries
                                        for all tables. </li>
                                    <li class="- topic/li li">schema-finished - Generated when the origin completes
                                        processing all rows within a schema.</li>
                                    <li class="- topic/li li">table-finished - Generated when the origin completes
                                        processing all rows within a table.</li>
                                </ul></td>
                        </tr>
                        <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="concept_yz1_4vj_vbc__EventHead-NoMoreData-table__entry__1">sdc.event.version</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="concept_yz1_4vj_vbc__EventHead-NoMoreData-table__entry__2">Integer that indicates the version of the event record type.</td>
            </tr>
                        <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-0" headers="concept_yz1_4vj_vbc__EventHead-NoMoreData-table__entry__1">sdc.event.creation_timestamp</td>
              <td class="- topic/entry entry colsep-0 rowsep-0" id="concept_yz1_4vj_vbc__entry-Event-creationDate" headers="concept_yz1_4vj_vbc__EventHead-NoMoreData-table__entry__2">Epoch timestamp when the stage created the event.
              </td>
            </tr>
                    </tbody></table></div></div>
        <p class="- topic/p p">The Oracle Multitable Consumer origin can generate the following event records: </p>
        <dl class="- topic/dl dl" id="concept_yz1_4vj_vbc__dl_fbq_qvj_vbc" data-ofbid="concept_yz1_4vj_vbc__dl_fbq_qvj_vbc">
            
                <dt class="- topic/dt dt dlterm">no-more-data</dt>
                <dd class="- topic/dd dd">The Oracle Multitable Consumer origin generates a no-more-data event record when
                    the origin completes processing all data returned by the queries for all tables. </dd>
                <dd class="- topic/dd dd ddexpand">The origin queries each table in turn for new data to process and generates the
                    no-more-data only after discovering that there is no additional data to process
                    for any of the tables. As a result, when processing multiple active tables,
                    generation of the no-more-data event might not occur. For example, if one table
                    has additional data, then after processing the data, the origin queries all
                    tables again for additional data. The origin generates the no-more-data event
                    only after all tables report no additional data in the same cycle.</dd>
                <dd class="- topic/dd dd ddexpand">When necessary, you can configure the origin to delay the generation of the
                    no-more-data event by a specified number of seconds. You might configure a delay
                    to ensure that the schema-finished or table-finished events are generated and
                    delivered to the pipeline before the no-more-data event record. To use a delay,
                    configure the No-more-data Event Generation Delay property.</dd>
                <dd class="- topic/dd dd ddexpand">
                    <p class="- topic/p p">The no-more-data event record generated by the origin has the
                            <code class="+ topic/ph pr-d/codeph ph codeph">sdc.event.type</code> record header attribute set to
                            <code class="+ topic/ph pr-d/codeph ph codeph">no-more-data</code> and does not include any additional
                        fields.</p>
                </dd>
            
            
                <dt class="- topic/dt dt dlterm">schema-finished</dt>
                <dd class="- topic/dd dd">The Oracle Multitable Consumer origin generates a schema-finished event record
                    when the origin completes processing all data within a schema.</dd>
                <dd class="- topic/dd dd ddexpand">The schema-finished event record has the following additional fields:<div class="table-container"><table class="- topic/table table frame-all" id="concept_yz1_4vj_vbc__table_dfv_3cc_12b" data-ofbid="concept_yz1_4vj_vbc__table_dfv_3cc_12b" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                                <tr class="- topic/row">
                                    <th class="- topic/entry entry align-left colsep-1 rowsep-1" id="concept_yz1_4vj_vbc__table_dfv_3cc_12b__entry__1">Event Record Field</th>
                                    <th class="- topic/entry entry align-left colsep-0 rowsep-1" id="concept_yz1_4vj_vbc__table_dfv_3cc_12b__entry__2">Description</th>
                                </tr>
                            </thead><tbody class="- topic/tbody tbody">
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry align-left colsep-1 rowsep-1" headers="concept_yz1_4vj_vbc__table_dfv_3cc_12b__entry__1">schema</td>
                                    <td class="- topic/entry entry align-left colsep-0 rowsep-1" headers="concept_yz1_4vj_vbc__table_dfv_3cc_12b__entry__2">The schema that has returned no remaining data to be
                                        processed.</td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry align-left colsep-1 rowsep-0" headers="concept_yz1_4vj_vbc__table_dfv_3cc_12b__entry__1">tables</td>
                                    <td class="- topic/entry entry align-left colsep-0 rowsep-0" headers="concept_yz1_4vj_vbc__table_dfv_3cc_12b__entry__2">A list of the tables within the schema that have no
                                        remaining data.</td>
                                </tr>
                            </tbody></table></div></dd>
            
            
                <dt class="- topic/dt dt dlterm">table-finished</dt>
                <dd class="- topic/dd dd">The Oracle Multitable Consumer origin generates a table-finished event record
                    when the origin completes processing all data within a table.</dd>
                <dd class="- topic/dd dd ddexpand">The table-finished event record has the following additional fields:<div class="table-container"><table class="- topic/table table frame-all" id="concept_yz1_4vj_vbc__table_qzm_lcc_12b" data-ofbid="concept_yz1_4vj_vbc__table_qzm_lcc_12b" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                                <tr class="- topic/row">
                                    <th class="- topic/entry entry align-left colsep-1 rowsep-1" id="concept_yz1_4vj_vbc__table_qzm_lcc_12b__entry__1">Event Record Field</th>
                                    <th class="- topic/entry entry align-left colsep-0 rowsep-1" id="concept_yz1_4vj_vbc__table_qzm_lcc_12b__entry__2">Description</th>
                                </tr>
                            </thead><tbody class="- topic/tbody tbody">
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry align-left colsep-1 rowsep-1" headers="concept_yz1_4vj_vbc__table_qzm_lcc_12b__entry__1">schema</td>
                                    <td class="- topic/entry entry align-left colsep-0 rowsep-1" headers="concept_yz1_4vj_vbc__table_qzm_lcc_12b__entry__2">The schema associated with the table that has no
                                        remaining data to be processed.</td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry align-left colsep-1 rowsep-0" headers="concept_yz1_4vj_vbc__table_qzm_lcc_12b__entry__1">table</td>
                                    <td class="- topic/entry entry align-left colsep-0 rowsep-0" headers="concept_yz1_4vj_vbc__table_qzm_lcc_12b__entry__2">The table that has no remaining data to be
                                        processed.</td>
                                </tr>
                            </tbody></table></div></dd>
            
        </dl>
    </div>
</article></article><article class="- topic/topic task/task topic task nested1" aria-labelledby="ariaid-title29" id="task_upl_mwt_pbc">
    <h2 class="- topic/title title topictitle2" id="ariaid-title29">Configuring an Oracle Multitable Consumer Origin</h2>
    
    <div class="- topic/body task/taskbody body taskbody"><p class="- topic/shortdesc shortdesc"></p>
        <section class="- topic/section task/context section context">
            <p class="- topic/p p">Configure an Oracle Multitable Consumer origin to read Oracle database data from
                multiple tables.</p>
        </section>
        <section class="- topic/ol task/steps ol steps"><ol class="- topic/ol task/steps ol steps"><li class="- topic/li task/step li step">
                <span class="- topic/ph task/cmd ph cmd">In the Properties panel, on the <span class="+ topic/keyword ui-d/wintitle keyword wintitle">General</span> tab, configure the
                    following properties:</span>
                <div class="- topic/itemgroup task/info itemgroup info">
                    <div class="table-container"><table class="- topic/table table frame-all" id="task_upl_mwt_pbc__table_ac1_hss_5x" data-ofbid="task_upl_mwt_pbc__table_ac1_hss_5x" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                                <tr class="- topic/row">
                                    <th class="- topic/entry entry colsep-1 rowsep-1" id="task_upl_mwt_pbc__table_ac1_hss_5x__entry__1">General Property</th>
                                    <th class="- topic/entry entry colsep-0 rowsep-1" id="task_upl_mwt_pbc__table_ac1_hss_5x__entry__2">Description</th>
                                </tr>
                            </thead><tbody class="- topic/tbody tbody">
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_ac1_hss_5x__entry__1">Name</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_ac1_hss_5x__entry__2">Stage name.</td>
            </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_ac1_hss_5x__entry__1">Description</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_ac1_hss_5x__entry__2">Optional description.</td>
            </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_ac1_hss_5x__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_tnw_1vj_vbc">Produce Events</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_ac1_hss_5x__entry__2">Generates event records when events occur. Use for
                  <a class="- topic/xref xref" href="../Event_Handling/EventFramework-Title.html#concept_cph_5h4_lx">event handling</a>.</td>
                                </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-0" headers="task_upl_mwt_pbc__table_ac1_hss_5x__entry__1"><a class="- topic/xref xref" href="../Pipeline_Design/ErrorHandling.html#concept_atr_j4y_5r">On Record Error</a></td>
              <td class="- topic/entry entry colsep-0 rowsep-0" headers="task_upl_mwt_pbc__table_ac1_hss_5x__entry__2">Error record handling for the stage: <ul class="- topic/ul ul" id="task_upl_mwt_pbc__ul_h5l_np2_px" data-ofbid="task_upl_mwt_pbc__ul_h5l_np2_px">
                  <li class="- topic/li li">Discard - Discards the record.</li>
                  <li class="- topic/li li">Send to Error - Sends the record to the pipeline for error handling.</li>
                  <li class="- topic/li li">Stop Pipeline - Stops the pipeline. </li>
                </ul></td>
            </tr>
                            </tbody></table></div>
                </div>
            </li><li class="- topic/li task/step li step">
                <span class="- topic/ph task/cmd ph cmd">On the <span class="+ topic/keyword ui-d/wintitle keyword wintitle">JDBC</span> tab, configure the following properties:</span>
                <div class="- topic/itemgroup task/info itemgroup info">
                    <div class="table-container"><table class="- topic/table table frame-all" id="task_upl_mwt_pbc__table_zpr_xs2_py" data-ofbid="task_upl_mwt_pbc__table_zpr_xs2_py" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                                <tr class="- topic/row">
                                    <th class="- topic/entry entry colsep-1 rowsep-1" id="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">JDBC Property</th>
                                    <th class="- topic/entry entry colsep-0 rowsep-1" id="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Description</th>
                                </tr>
                            </thead><tbody class="- topic/tbody tbody">
                                
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Hostname</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Host name of the database.</td>
            </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Port</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Port number to use.</td>
            </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Service Name</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Listener-registered service name. </td>
            </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Use Connection String</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Use a JDBC connection string to connect to the Oracle database.</td>
            </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Oracle JDBC Connection String</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Connection string used to connect to the database.<p class="- topic/p p">Enter the connection&#x2028;
                string in the following format:
                <code class="+ topic/ph pr-d/codeph ph codeph">jdbc:oracle:&lt;driver_type&gt;:@&lt;host&gt;:&lt;port&gt;:&lt;service_name&gt;</code></p><p class="- topic/p p">You
                  can optionally include the user name and password in the connection
                  string.</p><p class="- topic/p p">Required when Use Connection String is enabled.</p></td>
            </tr>
                                <tr class="- topic/row">
                        <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Use Credentials</td>
                        <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2"><span class="- topic/ph ph" id="task_upl_mwt_pbc__ph_UseCredentialsDesc">Enables entering credentials on the
                                Credentials tab. Select when you do not include credentials in the
                                JDBC connection string.</span></td>
                    </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Queries per Second</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Maximum number of queries to run in a second across all partitions and tables.
                Use 0 for no limit.<p class="- topic/p p">Default is 10. </p></td>
            </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_f33_b1k_vbc">Number of Threads</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Number of threads the origin generates and uses for
                multithreaded processing.<p class="- topic/p p">Configure the Maximum Pool Size property on the Advanced
                  tab to be equal to or greater than this value.</p></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_qql_mck_vbc">Per Batch Strategy</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">
                                        <div class="- topic/p p"><span class="- topic/ph ph">Strategy to create
                  each batch of data:</span><ul class="- topic/ul ul" id="task_upl_mwt_pbc__ul_yz4_wdk_vbc" data-ofbid="task_upl_mwt_pbc__ul_yz4_wdk_vbc">
                  <li class="- topic/li li">Switch Tables - When performing only multithreaded table processing, each
                    thread creates a batch of data from one table, and then switches to the next
                    available table to create the next batch. Define the Batches from Result Set
                    property when you configure a Switch Tables strategy.</li>
                  <li class="- topic/li li">Process All Available Rows From the Table - When performing only multithreaded
                    table processing, each thread processes all data in a table before moving to the
                    next table.</li>
                </ul></div>
                                        <p class="- topic/p p"><span class="- topic/ph ph">When performing multithreaded partition
                    processing or a mix of table and partition processing, the behavior for each
                    batch strategy is more complicated.</span> For details, see <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_qql_mck_vbc">Batch Strategy</a>
                                            or <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_uph_fdk_vbc">Processing Queue</a>.</p>
                                    </td>
                                </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Max Batch Size (records)</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Maximum number of records to include in a batch.</td>
            </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Maximum Number of Tables</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Maximum number of tables to prefetch.<p class="- topic/p p">This limit is
                                            checked as the pipeline starts. If it is exceeded, the
                                            origin generates an error and stops the
                                            pipeline.</p><p class="- topic/p p">Default is 5. Use -1 to allow an
                                            unlimited number of tables to be
                                            prefetched.</p><p class="- topic/p p">Available when using the Switch Tables
                                            batch strategy.</p></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_qql_mck_vbc">Batches from Result Set</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Maximum number of batches to create from a result
                set. After a thread creates this number of batches from a result set, the result set
                closes. Then, any available thread can read from the table or partition.<p class="- topic/p p">Use a
                  positive integer to set a limit on the number of batches created from the result
                  set. Use -1 to create an unlimited number of batches from a result set.</p><p class="- topic/p p">By
                  default, the origin creates an unlimited number of batches from the result set,
                  keeping the result set open as long as possible.</p><p class="- topic/p p">Available when using the
                  Switch Tables batch strategy.</p></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_qql_mck_vbc">Result Set Cache Size</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Number of result sets to cache in the database. Use a
                positive integer to set a limit on the number of cached result sets. Use -1 to opt
                out of this property.<p class="- topic/p p">By default, the origin caches an unlimited number of result
                  sets.</p></td>
                                </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Max Clob Size (characters)</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Maximum number of characters to be read in a Clob field. Larger data is
                truncated.</td>
            </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Max Blob Size (bytes)</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">
                <p class="- topic/p p">Maximum number of bytes to be read in a Blob field. </p>
              </td>
            </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Number of Retries on SQL Error</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Number of times a thread tries to read a batch of data after receiving an SQL
                error. After a thread retries this number of times, the thread handles the error
                based on the error handling configured for the origin.<p class="- topic/p p">Use to handle transient
                  network or connection issues that prevent a thread from reading a batch of
                  data.</p><p class="- topic/p p">Default is 0. </p></td>
            </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Use Quoted Identifiers</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">
                                        <p class="- topic/p p">Encloses table and column names in quotation marks.</p>
                                        <p class="- topic/p p">When this property is disabled, the destination uses the
                                            standard naming conventions for Oracle.</p>
                                    </td>
                                </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Data Time Zone</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Time zone to use to evaluate datetime-based offset column conditions. </td>
            </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_yz1_4vj_vbc">No-more-data Event Generation Delay
                                        (seconds)</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Number of seconds to delay generation of the
                no-more-data event after processing all rows. Use to allow time for additional data
                to arrive before generating the no-more-data event. </td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Convert Timestamp To String</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">
                                        <p class="- topic/p p"><span class="- topic/ph ph">Enables the origin to write
                  timestamps as string values rather than datetime values. Strings maintain the
                  precision stored in the source system.</span></p>
                                        <p class="- topic/p p"><span class="- topic/ph ph">When writing timestamps to <span class="- topic/ph ph">Data Collector</span> date or time data
                    types that do not store nanoseconds, the origin stores any nanoseconds from the
                    timestamp in a <a class="- topic/xref xref" href="../Pipeline_Design/FieldAttributes.html#concept_xfm_wtp_1z">field attribute</a>.</span></p>
                                    </td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Fetch Size</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2"><span class="- topic/ph ph">Maximum number of rows to fetch and store in memory on
                  the <span class="- topic/ph ph">Data Collector</span> machine. The
                  size cannot be zero.</span><p class="- topic/p p" id="task_upl_mwt_pbc__p-FetchSize-DefaultValue" data-ofbid="task_upl_mwt_pbc__p-FetchSize-DefaultValue"><span class="- topic/ph ph">Default is 1,000.</span></p><p class="- topic/p p">For more information about configuring a fetch
                  size, see your database documentation.</p></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Query Timeout (seconds)</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Maximum number of seconds to wait for a query to
                                            complete.<p class="- topic/p p">Use 0 for no query timeout.</p></td>
                                </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-0" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__1">Additional JDBC Configuration Properties</td>
              <td class="- topic/entry entry colsep-0 rowsep-0" headers="task_upl_mwt_pbc__table_zpr_xs2_py__entry__2">Additional JDBC configuration properties to use. To add properties, click
                  <span class="+ topic/ph ui-d/uicontrol ph uicontrol">Add</span> and define the JDBC property name and value. <p class="- topic/p p">Use the
                  property names and values as expected by JDBC. </p></td>
            </tr>
                            </tbody></table></div>
                </div>
            </li><li class="- topic/li task/step li step">
                <span class="- topic/ph task/cmd ph cmd">On the <span class="+ topic/keyword ui-d/wintitle keyword wintitle">Tables</span> tab, define one or more table
                    configurations. Using <a class="- topic/xref xref" href="../Pipeline_Configuration/SimpleBulkEdit.html#concept_alb_b3y_cbb">simple or bulk edit mode</a>, click the <span class="+ topic/ph ui-d/uicontrol ph uicontrol">Add</span> icon
                    to define another table configuration.</span>
                <div class="- topic/itemgroup task/info itemgroup info">Configure the following properties for each <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_ggk_dhk_vbc">table
                        configuration</a>: <div class="table-container"><table class="- topic/table table frame-all" id="task_upl_mwt_pbc__table_j3t_g4d_1gb" data-ofbid="task_upl_mwt_pbc__table_j3t_g4d_1gb" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                                <tr class="- topic/row">
                                    <th class="- topic/entry entry colsep-1 rowsep-1" id="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__1">Tables Property </th>
                                    <th class="- topic/entry entry colsep-0 rowsep-1" id="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__2">Description</th>
                                </tr>
                            </thead><tbody class="- topic/tbody tbody">
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_bq3_mhk_vbc">Schema</a>
                                    </td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__2"><span class="- topic/ph ph">Pattern of the schema names included in this
                  table configuration. Use the SQL LIKE syntax to define the pattern. Enter
                    <kbd class="+ topic/ph sw-d/userinput ph userinput">%</kbd> to match all schemas. If you enter no value, the origin
                  only reads from tables without a specified schema.</span>
                                        <div class="- topic/note note note note_note" id="task_upl_mwt_pbc__note_spr_xlz_tbc" data-ofbid="task_upl_mwt_pbc__note_spr_xlz_tbc"><span class="note__title">Note:</span> <span class="- topic/ph ph">Oracle uses all caps for schema, table, and column names by
                        default. Names can be lower- or mixed-case only if the schema, table, or
                        column was created with quotation marks around the name.</span></div></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_bq3_mhk_vbc">Enable Table Name List</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__2">Enables you to specify a list of multiple table name
                                        patterns to read for this table configuration instead of
                                        being limited to a single table name pattern.</td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_bq3_mhk_vbc">Table Name Pattern List</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__2"><span class="- topic/ph ph">Pattern of the table names to read for
                  this table configuration. Use the SQL LIKE syntax to define the pattern.
                    </span> Click <span class="+ topic/ph ui-d/uicontrol ph uicontrol">Add Another</span> to add
                                        additional table name patterns.<div class="- topic/note note note note_note" id="task_upl_mwt_pbc__note_c2f_dnz_tbc" data-ofbid="task_upl_mwt_pbc__note_c2f_dnz_tbc"><span class="note__title">Note:</span> <span class="- topic/ph ph">Oracle uses all caps for schema, table, and column names by
                        default. Names can be lower- or mixed-case only if the schema, table, or
                        column was created with quotation marks around the name.</span><p class="- topic/p p">Available when table name list is
                                            enabled.</p></div></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_bq3_mhk_vbc">Table Name Pattern</a>
                                    </td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__2"><span class="- topic/ph ph">Pattern of the table names to read for
                  this table configuration. Use the SQL LIKE syntax to define the pattern.
                    </span><div class="- topic/note note note note_note" id="task_upl_mwt_pbc__note_tpr_xlz_tbc" data-ofbid="task_upl_mwt_pbc__note_tpr_xlz_tbc"><span class="note__title">Note:</span> <span class="- topic/ph ph">Oracle uses all caps for schema, table, and column names by
                        default. Names can be lower- or mixed-case only if the schema, table, or
                        column was created with quotation marks around the name.</span></div><p class="- topic/p p" id="task_upl_mwt_pbc__p-TableNamePattern-Default" data-ofbid="task_upl_mwt_pbc__p-TableNamePattern-Default">Default is
                                            the percentage wildcard (%) which matches all tables in
                                            the schema.</p><p class="- topic/p p">Available when table name list is
                                            disabled.</p></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_bq3_mhk_vbc">Table Exclusion Pattern</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__2">Pattern of the table names to exclude
                from being read for this table configuration. Use a Java-based regular expression,
                or regex, to define the pattern.<p class="- topic/p p">Leave empty if you do not need to exclude any
                  tables.</p></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_bq3_mhk_vbc">Schema Exclusion Pattern</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__2">Pattern of the schema names to exclude
                from being read for this table configuration. Use a Java-based regular expression,
                or regex, to define the pattern.<p class="- topic/p p">Leave empty if you do not need to exclude any
                  schemas.</p></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_tbh_b3k_vbc">Override Offset Columns</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__2"><span class="- topic/ph ph">Determines whether to use the primary
                  keys or other columns as the offset columns for this table configuration. </span><p class="- topic/p p">Select to override the primary keys and define
                  other offset columns. Clear to use existing primary keys as the offset columns.
                    </p><p class="- topic/p p"><span class="- topic/ph ph">To perform multithreaded partition
                    processing on a table with multiple key columns or a key column with unsupported
                    data types, select this option and specify a valid offset column. </span> For more information about partition processing
                                            requirements, see <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_cyz_bkk_vbc">Partition Processing Requirements</a>.</p></td>
                                </tr>
                                <tr class="- topic/row" id="task_upl_mwt_pbc__jdbc-OffsetColumns">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" id="task_upl_mwt_pbc__entry-OffsetColumns-property" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__1">Offset Columns</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__2">Offset columns to use. <p class="- topic/p p" id="task_upl_mwt_pbc__p-OffsetColumnsBestPractice" data-ofbid="task_upl_mwt_pbc__p-OffsetColumnsBestPractice">As a best practice, an offset column should be an
                  incremental and unique column that does not contain null values. Having an index
                  on this column is strongly encouraged since the underlying query uses an ORDER BY
                  and inequality operators on this column.</p></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__1">
                                        <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_tbh_b3k_vbc">Initial
                                            Offset</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__2">Offset value to use for this table configuration
                when the pipeline starts. Enter the primary key name or offset column name and
                value. For Datetime columns, enter a Long value.<p class="- topic/p p">When you define multiple offset
                  columns, you must define an initial offset value for each column, in the same
                  order that the columns are defined.</p></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_tbh_b3k_vbc">Last
                                            Offset</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__2">Offset value for this table configuration where the origin stops reading. Enter
                the primary key name or offset column name and value. For Datetime columns, enter a
                Long value.<p class="- topic/p p">When you define multiple offset columns, you must define an initial
                  last value for each column, in the same order that the columns are defined.</p><div class="- topic/p p">
                  <div class="- topic/note note note note_note" id="task_upl_mwt_pbc__note_ugg_tyw_vbc" data-ofbid="task_upl_mwt_pbc__note_ugg_tyw_vbc"><span class="note__title">Note:</span> 
                    The last offset is only applicable in cases where the Partition Processing
                      Requirements under Multithreaded Partition Processing are met.
                  </div>
                </div></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_edt_wbk_vbc">Enable Non-Incremental Load</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__2">Enables non-incremental processing of
                tables that do not include a primary key or offset column. Do not use when requiring
                multithreaded partition processing. </td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" id="task_upl_mwt_pbc__entry-MutithreadedPartitionProcessingMode-property" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__1">Multithreaded Partition Processing Mode</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__2"><span class="- topic/ph ph" id="task_upl_mwt_pbc__MultithreadedPartitionProcessingMode-desc-s1">Determines how the origin performs multithreaded
                                            processing. Select one of the following options:</span><ul class="- topic/ul ul" id="task_upl_mwt_pbc__ul_btn_wfj_t1b" data-ofbid="task_upl_mwt_pbc__ul_btn_wfj_t1b">
                                            <li class="- topic/li li">Off - The origin performs <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_gg5_p1k_vbc">multithreaded table processing</a>.<p class="- topic/p p">Can be
                                                  used to perform <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_edt_wbk_vbc">non-incremental processing</a> of tables
                                                  without key or offset columns.</p></li>
                                            <li class="- topic/li li">On (Best Effort) - The origin performs<a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_csl_2bk_vbc"> multithreaded partition processing</a> for
                                                all tables that meet the <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_cyz_bkk_vbc">partition processing requirements</a> and
                                                performs multithreaded table partitioning tables
                                                with multiple key or offset columns.<p class="- topic/p p">Can be used
                                                  to perform <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_edt_wbk_vbc">non-incremental processing</a> of tables
                                                  without key or offset columns.</p></li>
                                            <li class="- topic/li li" id="task_upl_mwt_pbc__MultithreadedPartitionProcessMode-desc-OnReqd" data-ofbid="task_upl_mwt_pbc__MultithreadedPartitionProcessMode-desc-OnReqd">On (Required) - The origin performs multithreaded
                                                partition processing for all tables. <p class="- topic/p p">Generates an
                                                  error if the table configuration includes tables
                                                  that do not meet the partition processing
                                                  requirements.</p></li>
                                        </ul></td>
                                </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" id="task_upl_mwt_pbc__entry-PartitionSize-property" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__1">Partition Size</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" id="task_upl_mwt_pbc__entry-PartitionSize-desc" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__2">Range of values in the offset column to use to
                create partitions. <p class="- topic/p p">If the offset column is a Datetime column, provide the
                  partition size in milliseconds. For example, to create a partition for every hour,
                  enter 3,600,000.</p><p class="- topic/p p">Available when using multithreaded partition
                  processing.</p></td>
            </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" id="task_upl_mwt_pbc__Entry-MaxPartitions-property" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__1">Max Partitions</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" id="task_upl_mwt_pbc__entry-MaxPartitions-desc" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__2">Maximum number of partitions to be maintained or
                processed at one time for a single table. Adjusting this value can increase
                throughput depending on various factors, including the machine running <span class="- topic/ph ph">Data Collector</span> and
                the database server type and capacity.<p class="- topic/p p">The minimum positive value is 2, to ensure
                  the origin can make progress through the partitions.</p><p class="- topic/p p">Enter -1 to use the
                  default behavior, allowing the origin to create up to twice as many partitions for
                  each table as threads used by the origin. Best practice is to start with the
                  default behavior and adjust to tune performance.</p><p class="- topic/p p">Available when using
                  multithreaded partition processing.</p></td>
            </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-0" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_tbh_b3k_vbc">Offset
                                            Column Conditions</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-0" headers="task_upl_mwt_pbc__table_j3t_g4d_1gb__entry__2">Additional conditions that the origin
                uses to determine where to start reading data for this table configuration. The
                origin adds the defined condition to the WHERE clause of the SQL query. <p class="- topic/p p">Use the
                  expression language to define the conditions. For example, you can use the
                  offset:column function to compare the value of an offset column.</p></td>
                                </tr>
                            </tbody></table></div></div>
            </li><li class="- topic/li task/step li step">
                <span class="- topic/ph task/cmd ph cmd" id="task_upl_mwt_pbc__CMD-CredentialsTab">If you configured the destination to use credentials
                    separately from the Oracle JDBC connection string on the
                    <span class="+ topic/keyword ui-d/wintitle keyword wintitle">JDBC</span> tab, then configure the following properties on
                    the <span class="+ topic/keyword ui-d/wintitle keyword wintitle">Credentials</span> tab:</span>
                <div class="- topic/itemgroup task/info itemgroup info">
                    <div class="table-container"><table class="- topic/table table frame-all" id="task_upl_mwt_pbc__tbl-JDBCcredentials" data-ofbid="task_upl_mwt_pbc__tbl-JDBCcredentials" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                                <tr class="- topic/row" id="task_upl_mwt_pbc__row-CredentialsTabHeading">
                                    <th class="- topic/entry entry colsep-1 rowsep-1" id="task_upl_mwt_pbc__row-CredentialsTabHeading__entry__1">Credentials Property</th>
                                    <th class="- topic/entry entry colsep-0 rowsep-1" id="task_upl_mwt_pbc__row-CredentialsTabHeading__entry__2">Description</th>
                                </tr>
                            </thead><tbody class="- topic/tbody tbody">
                                <tr class="- topic/row">
                        <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__row-CredentialsTabHeading__entry__1">Username</td>
                        <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__row-CredentialsTabHeading__entry__2"><span class="- topic/ph ph">User name for the JDBC connection.</span><p class="- topic/p p"><span class="- topic/ph ph">The user account must have the correct
                                    permissions or privileges in the database. </span>
                            </p></td>
                    </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-0" headers="task_upl_mwt_pbc__row-CredentialsTabHeading__entry__1">Password</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-0" headers="task_upl_mwt_pbc__row-CredentialsTabHeading__entry__2"><span class="- topic/ph ph">Password for
                                the JDBC user name. </span><div class="- topic/note note tip note_tip" id="task_upl_mwt_pbc__note_whx_tny_y1c" data-ofbid="task_upl_mwt_pbc__note_whx_tny_y1c"><span class="note__title">Tip:</span> <span class="- topic/ph ph" id="task_upl_mwt_pbc__ph-runtimeresources_credstores">To
                        secure sensitive information such as user names and passwords, you can use
                              <a class="- topic/xref xref" href="../Pipeline_Configuration/RuntimeValues.html#concept_bs4_5nm_2s" title="Similar to runtime properties, runtime resources are values that you define in a file local to the Data Collector and call from within a pipeline. But with runtime resources, you can restrict the permissions for the files to secure information.">runtime resources</a> or <span class="- topic/ph ph"><a class="- topic/xref xref" href="../Configuration/CredentialStores.html#concept_bt1_bpj_r1b">credential stores.</a></span></span></div></td>
                                </tr>
                            </tbody></table></div>
                </div>
            </li><li class="- topic/li task/step li step">
                <span class="- topic/ph task/cmd ph cmd">When using JDBC versions older than 4.0, on the <span class="+ topic/ph ui-d/uicontrol ph uicontrol">Legacy
                        Drivers</span> tab, optionally configure the following
                    properties:</span>
                <div class="- topic/itemgroup task/info itemgroup info">
                    <div class="table-container"><table class="- topic/table table frame-all" id="task_upl_mwt_pbc__table_LogData" data-ofbid="task_upl_mwt_pbc__table_LogData" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                                <tr class="- topic/row">
                                    <th class="- topic/entry entry colsep-1 rowsep-1" id="task_upl_mwt_pbc__table_LogData__entry__1">Legacy Drivers Property</th>
                                    <th class="- topic/entry entry colsep-0 rowsep-1" id="task_upl_mwt_pbc__table_LogData__entry__2">Description</th>
                                </tr>
                            </thead><tbody class="- topic/tbody tbody">
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_LogData__entry__1">JDBC Class Driver Name</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_LogData__entry__2">Class name for the JDBC driver. Required for JDBC
                                        versions older than version 4.0.</td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-0" headers="task_upl_mwt_pbc__table_LogData__entry__1">Connection Health Test Query</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-0" headers="task_upl_mwt_pbc__table_LogData__entry__2">Optional query to test the health of a connection.
                                        Recommended only when the JDBC version is older than 4.0.
                                    </td>
                                </tr>
                            </tbody></table></div>
                </div>
            </li><li class="- topic/li task/step li step">
                <span class="- topic/ph task/cmd ph cmd">On the <span class="+ topic/keyword ui-d/wintitle keyword wintitle">Advanced</span> tab, optionally configure advanced
                    properties.</span>
                <div class="- topic/itemgroup task/info itemgroup info">The defaults for these properties should work in most cases:<div class="table-container"><table class="- topic/table table frame-all" id="task_upl_mwt_pbc__table_z1c_hjj_kw" data-ofbid="task_upl_mwt_pbc__table_z1c_hjj_kw" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                            <tr class="- topic/row">
                                <th class="- topic/entry entry colsep-1 rowsep-1" id="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__1">Advanced Property</th>
                                <th class="- topic/entry entry colsep-0 rowsep-1" id="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__2">Description</th>
                            </tr>
                        </thead><tbody class="- topic/tbody tbody">
                            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__1">Maximum Pool Size</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__2">Maximum number of connections to create. Must be equal to or greater than the
                value of the Number of Threads property.<p class="- topic/p p">Default is 1.</p></td>
            </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__1">Minimum Idle Connections</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__2">Minimum number of connections to create and maintain. To define a fixed
                connection pool, set to the same value as Maximum Pool Size. <p class="- topic/p p">Default is 1.
                </p></td>
            </tr>
                            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__1">Connection Timeout (seconds)</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__2">Maximum time to wait for a connection. Use a time constant in an expression to
                define the time increment. <div class="- topic/p p">Default is 30 seconds, defined as follows:
                  <pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>${30 * SECONDS}</code></pre></div></td>
            </tr>
                            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__1">Idle Timeout (seconds)</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__2">Maximum time to allow a connection to idle. Use a time constant in an
                expression to define the time increment. <p class="- topic/p p">Use 0 to avoid removing any idle
                  connections.</p><p class="- topic/p p">When the entered value is close to or more than the maximum
                  lifetime for a connection, <span class="- topic/ph ph">Data Collector</span> ignores the idle
                  timeout.</p><div class="- topic/p p">Default is 10 minutes, defined as follows:
                  <pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>${10 * MINUTES}</code></pre></div></td>
            </tr>
                            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__1">Max Connection Lifetime (seconds)</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__2">Maximum lifetime for a connection. Use a time constant in an expression to
                define the time increment. <p class="- topic/p p">Use 0 to set no maximum lifetime.</p><p class="- topic/p p">When a maximum
                  lifetime is set, the minimum valid value is 30 minutes.</p><div class="- topic/p p">Default is 30
                  minutes, defined as follows: <pre class="+ topic/pre pr-d/codeblock pre codeblock"><code>${30 * MINUTES}</code></pre></div></td>
            </tr>
                            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__1">Auto Commit</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__2">Determines if auto-commit mode is enabled. In auto-commit mode, the database
                commits the data for each record. <p class="- topic/p p">Default is disabled.</p></td>
            </tr>
                            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__1">Enforce Read-only Connection</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__2">Creates read-only connections to avoid any type of write. <p class="- topic/p p">Default is
                  enabled. Disabling this property is not recommended. </p></td>
            </tr>
                            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__1">Transaction Isolation</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__2">Transaction isolation level used to connect to the database. <p class="- topic/p p">Default is the
                  default transaction isolation level set for the database. You can override the
                  database default by setting the level to any of the following:</p><ul class="- topic/ul ul" id="task_upl_mwt_pbc__ul_arc_mdf_2y" data-ofbid="task_upl_mwt_pbc__ul_arc_mdf_2y">
                  <li class="- topic/li li">Read committed </li>
                  <li class="- topic/li li">Read uncommitted </li>
                  <li class="- topic/li li">Repeatable read</li>
                  <li class="- topic/li li">Serializable</li>
                </ul></td>
            </tr>
                            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" id="task_upl_mwt_pbc__advanced-InitQuery-property" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__1">Init Query</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__2"><span class="- topic/ph ph" id="task_upl_mwt_pbc__InitQuery-desc-s1">SQL query to perform immediately after the stage
                  connects to the database. Use to set up the database session as needed. </span><p class="- topic/p p" id="task_upl_mwt_pbc__InitQuery-desc-s2" data-ofbid="task_upl_mwt_pbc__InitQuery-desc-s2">The query is performed after each connection to the
                  database. If the stage disconnects from the database during the pipeline run, for
                  example if a network timeout occurrs, the stage performs the query again when it
                  reconnects to the database. </p><p class="- topic/p p">For example, in case of Oracle, the following
                  query returns 1 to verify that the stage is connected to the database:
                    <code class="+ topic/ph pr-d/codeph ph codeph">Select 1 from dual;</code></p></td>
            </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_m1c_5mk_vbc">Initial Table Order Strategy</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__2">Initial order used to read the tables:<ul class="- topic/ul ul" id="task_upl_mwt_pbc__ul_opw_1jf_py" data-ofbid="task_upl_mwt_pbc__ul_opw_1jf_py">
                  <li class="- topic/li li" id="task_upl_mwt_pbc__li-InitialOrder-None" data-ofbid="task_upl_mwt_pbc__li-InitialOrder-None">None - Reads the tables in the order that they are
                    listed in the database.</li>
                  <li class="- topic/li li" id="task_upl_mwt_pbc__li-IniitalOrder-Alpha" data-ofbid="task_upl_mwt_pbc__li-IniitalOrder-Alpha">Alphabetical - Reads the tables in alphabetical
                    order.</li>
                  <li class="- topic/li li">Referential Constraints - Reads the tables based on the dependencies between
                    the tables.</li>
                </ul></td>
                                </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_ufc_j4k_vbc">Create JDBC Header Attributes</a></td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__2"><span class="- topic/ph ph" id="task_upl_mwt_pbc__jdbcAtt-Info">Adds JDBC header attributes
                  to records. The origin creates JDBC header attributes by default. </span><div class="- topic/p p">
                  <div class="- topic/note note note note_note"><span class="note__title">Note:</span> When using the origin with a Drift Synchronization Solution, make sure this
                    property is selected.</div>
                </div></td>
                                </tr>
                            <tr class="- topic/row">
                                <td class="- topic/entry entry colsep-1 rowsep-0" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__1"><a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_pym_kpk_vbc">On Unknown Type</a></td>
                                <td class="- topic/entry entry colsep-0 rowsep-0" headers="task_upl_mwt_pbc__table_z1c_hjj_kw__entry__2">Action to take when encountering an unsupported data
                  type:<ul class="- topic/ul ul" id="task_upl_mwt_pbc__ul_jcm_gdc_41b" data-ofbid="task_upl_mwt_pbc__ul_jcm_gdc_41b">
                  <li class="- topic/li li">Stop Pipeline - Stops the pipeline after completing the processing of the
                    previous records.</li>
                  <li class="- topic/li li">Convert to String - When possible, converts the data to string and continues
                    processing. </li>
                </ul></td>
                            </tr>
                        </tbody></table></div></div>
            </li><li class="- topic/li task/step li step">
                <span class="- topic/ph task/cmd ph cmd">On the <span class="+ topic/keyword ui-d/wintitle keyword wintitle">Data</span> tab, configure the following properties:</span>
                <div class="- topic/itemgroup task/info itemgroup info">
                    <div class="table-container"><table class="- topic/table table frame-all" id="task_upl_mwt_pbc__table_apw_myz_tbc" data-ofbid="task_upl_mwt_pbc__table_apw_myz_tbc" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
                                <tr class="- topic/row">
                                    <th class="- topic/entry entry colsep-1 rowsep-1" id="task_upl_mwt_pbc__table_apw_myz_tbc__entry__1">Data Property</th>
                                    <th class="- topic/entry entry colsep-0 rowsep-1" id="task_upl_mwt_pbc__table_apw_myz_tbc__entry__2">Description</th>
                                </tr>
                            </thead><tbody class="- topic/tbody tbody">
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_apw_myz_tbc__entry__1">Column Fields to Ignore</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_apw_myz_tbc__entry__2">A list of fields to ignore when writing to the destination. You can enter a comma-separated list of first-level fields to ignore.</td>
            </tr>
                                <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_apw_myz_tbc__entry__1">Ignore Fields with Invalid Type</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_apw_myz_tbc__entry__2">Allows replacing fields that contain data of an <a class="- topic/xref xref" href="OracleMultitableConsumer.html#concept_awg_tgk_vbc">invalid
                                            type</a> with an empty value.<p class="- topic/p p"><span class="- topic/ph ph">When not enabled, records with data of invalid types are treated as error records.</span></p></td>
                                </tr>
                                <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-0" headers="task_upl_mwt_pbc__table_apw_myz_tbc__entry__1">Merge CDC Data</td>
              <td class="- topic/entry entry colsep-0 rowsep-0" headers="task_upl_mwt_pbc__table_apw_myz_tbc__entry__2">Enables performing CRUD operations and using the MERGE command to write to Oracle tables. Select to process CDC data. <div class="- topic/p p"><div class="- topic/note note important note_important" id="task_upl_mwt_pbc__note_wdt_gdh_z1c" data-ofbid="task_upl_mwt_pbc__note_wdt_gdh_z1c"><span class="note__title">Important:</span> To maintain the original order of data, do not use multiple threads or cluster execution mode when processing CDC data.</div></div></td>
            </tr>
                            </tbody></table></div>
                </div>
            </li><li class="- topic/li task/step li step">
                <span class="- topic/ph task/cmd ph cmd">On the <span class="+ topic/keyword ui-d/wintitle keyword wintitle">SSL/TLS Encryption</span> tab, configure the following
                    properties:</span>
                <div class="- topic/itemgroup task/info itemgroup info">
                    <div class="table-container"><table class="- topic/table table frame-all" id="task_upl_mwt_pbc__table_ghx_5zz_tbc" data-ofbid="task_upl_mwt_pbc__table_ghx_5zz_tbc" data-cols="2"><caption></caption><colgroup><col style="width:30%"/><col style="width:70%"/></colgroup><thead class="- topic/thead thead">
            <tr class="- topic/row">
              <th class="- topic/entry entry colsep-1 rowsep-1" id="task_upl_mwt_pbc__table_ghx_5zz_tbc__entry__1">SSL/TLS Property</th>
              <th class="- topic/entry entry colsep-0 rowsep-1" id="task_upl_mwt_pbc__table_ghx_5zz_tbc__entry__2">Description</th>
            </tr>
          </thead><tbody class="- topic/tbody tbody">
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_ghx_5zz_tbc__entry__1">Encrypt Connection</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_ghx_5zz_tbc__entry__2">Encrypt the connection using SSL.</td>
            </tr>
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_ghx_5zz_tbc__entry__1">Server Certificate PEM</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_ghx_5zz_tbc__entry__2">Server certificate in PEM format used to verify the SSL/TLS certificate of the
                Oracle server.<p class="- topic/p p">Use a text editor to open the PEM encoded certificate, and then
                  copy and paste the full contents of the file into the property, including the
                  header and footer.</p></td>
            </tr>
            <tr class="- topic/row">
                                    <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_ghx_5zz_tbc__entry__1">Cipher Suites</td>
                                    <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_ghx_5zz_tbc__entry__2">Cipher suites to use. To use a cipher suite that is not a
                                        part of the default set, click the
                                            <span class="+ topic/ph ui-d/uicontrol ph uicontrol">Add</span> icon and enter the name of
                                        the cipher suite. You can use simple or bulk edit mode to
                                        add cipher suites.<p class="- topic/p p">Enter the Java Secure Socket Extension
                                            (JSSE) name for the additional cipher suites that you
                                            want to use. </p></td>
                                </tr>
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-1" headers="task_upl_mwt_pbc__table_ghx_5zz_tbc__entry__1">Verify Hostname</td>
              <td class="- topic/entry entry colsep-0 rowsep-1" headers="task_upl_mwt_pbc__table_ghx_5zz_tbc__entry__2">Verify that the host name specified in the connection string matches the certificate name in the server certificate.</td>
            </tr>
            <tr class="- topic/row">
              <td class="- topic/entry entry colsep-1 rowsep-0" headers="task_upl_mwt_pbc__table_ghx_5zz_tbc__entry__1">SSL Distinguished Name</td>
              <td class="- topic/entry entry colsep-0 rowsep-0" headers="task_upl_mwt_pbc__table_ghx_5zz_tbc__entry__2">Distinguished Name (DN) of the server. This must match the DN in the server certificate.</td>
            </tr>
          </tbody></table></div>
                </div>
            </li></ol></section>
    </div>
</article></article></article></main></div>

                        
                        
                        


                    </div>
                    
                </div>
            </div>


        </div> <nav class="navbar navbar-default wh_footer" data-whc_version="25.0">
  <div class=" footer-container  mx-auto">
    <!-- script for Data Collector, all flavors, but only used when accessed directly, not from portal --><script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-60917135-3', 'auto');
  ga('send', 'pageview');
</script>
  </div>
</nav>

        
        <div id="go2top">
            <span class="oxy-icon oxy-icon-up"></span>
        </div>
        
        <!-- The modal container for images -->
        <div id="modal_img_large" class="modal">
            <span class="close oxy-icon oxy-icon-remove"></span>
            <!-- Modal Content (The Image) -->
            <div id="modal_img_container"></div>
            <!-- Modal Caption (Image Text) -->
            <div id="caption"></div>
        </div>
        
        
        Â© 2023 StreamSets, Inc.

    </body>
</html>